diff options
| author | Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> | 2020-01-11 07:51:51 +0800 |
|---|---|---|
| committer | dan-shaw <51385773+dan-shaw@users.noreply.github.com> | 2020-01-10 15:51:51 -0800 |
| commit | bc01338fe2d50f4a24b7f56b53bc385d8de8ccd9 (patch) | |
| tree | 0a17719ec8f23cf32823885f120eded1c421925a | |
| parent | fc34b74ce2a902fc235ac4c60d68eacaf9488948 (diff) | |
| download | vcpkg-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.txt | 6 | ||||
| -rw-r--r-- | ports/cgicc/fix-static-build.patch | 15 | ||||
| -rw-r--r-- | ports/cgicc/portfile.cmake | 13 |
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) |
