aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2020-01-11 07:51:51 +0800
committerdan-shaw <51385773+dan-shaw@users.noreply.github.com>2020-01-10 15:51:51 -0800
commitbc01338fe2d50f4a24b7f56b53bc385d8de8ccd9 (patch)
tree0a17719ec8f23cf32823885f120eded1c421925a
parentfc34b74ce2a902fc235ac4c60d68eacaf9488948 (diff)
downloadvcpkg-bc01338fe2d50f4a24b7f56b53bc385d8de8ccd9.tar.gz
vcpkg-bc01338fe2d50f4a24b7f56b53bc385d8de8ccd9.zip
[cgicc]Fix usage error:lnk2019. (#8558)
* [cgicc]Fix usage error:lnk2019. * [cgicc]Fix static build. * [cgicc]Modify precompiled macro judgments based on library linkage.
-rw-r--r--ports/cgicc/CMakeLists.txt6
-rw-r--r--ports/cgicc/fix-static-build.patch15
-rw-r--r--ports/cgicc/portfile.cmake13
3 files changed, 33 insertions, 1 deletions
diff --git a/ports/cgicc/CMakeLists.txt b/ports/cgicc/CMakeLists.txt
index a6533315b..8a74f6bff 100644
--- a/ports/cgicc/CMakeLists.txt
+++ b/ports/cgicc/CMakeLists.txt
@@ -104,6 +104,12 @@ set (cgicc_HEADERS
include_directories (. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
add_library (cgicc ${cgicc_SOURCES} ${cgicc_HEADERS})
+if (BUILD_SHARED_LIBS)
+ add_definitions(-DCGICC_EXPORTS)
+else()
+ add_definitions(-DCGICC_STATIC)
+endif()
+
install(TARGETS cgicc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
diff --git a/ports/cgicc/fix-static-build.patch b/ports/cgicc/fix-static-build.patch
new file mode 100644
index 000000000..4bd21794c
--- /dev/null
+++ b/ports/cgicc/fix-static-build.patch
@@ -0,0 +1,15 @@
+diff --git a/cgicc/CgiDefs.h.in b/cgicc/CgiDefs.h.in
+index 71b70ad..3793cd8 100644
+--- a/cgicc/CgiDefs.h.in
++++ b/cgicc/CgiDefs.h.in
+@@ -47,7 +47,9 @@
+ #ifdef WIN32
+
+ // export library symbols
+-# ifdef CGICC_EXPORTS
++# ifdef CGICC_STATIC
++# define CGICC_API
++# elif defined(CGICC_EXPORTS)
+ # define CGICC_API __declspec(dllexport)
+ # else
+ # define CGICC_API __declspec(dllimport)
diff --git a/ports/cgicc/portfile.cmake b/ports/cgicc/portfile.cmake
index de282d0a7..0be8d1825 100644
--- a/ports/cgicc/portfile.cmake
+++ b/ports/cgicc/portfile.cmake
@@ -11,7 +11,9 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive_ex(
ARCHIVE ${ARCHIVE}
OUT_SOURCE_PATH SOURCE_PATH
- PATCHES fix-define.patch
+ PATCHES
+ fix-define.patch
+ fix-static-build.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -27,4 +29,13 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+file(READ ${CURRENT_PACKAGES_DIR}/include/cgicc/CgiDefs.h CGI_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ string(REPLACE "# ifdef CGICC_STATIC" "# if 0" CGI_H "${CGI_H}")
+else()
+ string(REPLACE "# ifdef CGICC_STATIC" "# if 1" CGI_H "${CGI_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/cgicc/CgiDefs.h "${CGI_H}")
+
+
file(INSTALL ${SOURCE_PATH}/COPYING.DOC DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)