diff options
| -rw-r--r-- | ports/glbinding/portfile.cmake | 11 | ||||
| -rw-r--r-- | ports/openssl/CMakeLists.txt | 21 | ||||
| -rw-r--r-- | ports/openssl/ConfigureIncludeQuotesFix.patch | 13 | ||||
| -rw-r--r-- | ports/openssl/PerlScriptSpaceInPathFixes.patch | 35 | ||||
| -rw-r--r-- | ports/openssl/STRINGIFYPatch.patch | 23 | ||||
| -rw-r--r-- | ports/openssl/portfile.cmake | 7 | ||||
| -rw-r--r-- | ports/sqlite3/CMakeLists.txt | 20 | ||||
| -rw-r--r-- | ports/sqlite3/portfile.cmake | 9 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_apply_patches.cmake | 10 |
9 files changed, 135 insertions, 14 deletions
diff --git a/ports/glbinding/portfile.cmake b/ports/glbinding/portfile.cmake index ada070089..38cc21542 100644 --- a/ports/glbinding/portfile.cmake +++ b/ports/glbinding/portfile.cmake @@ -16,7 +16,7 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glbinding-2.1.1) -vcpkg_build_cmake() +#vcpkg_build_cmake() vcpkg_install_cmake() @@ -26,10 +26,15 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/glbinding ${CURRENT_PACKAGES_DIR}/shar file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake) file(READ ${CURRENT_PACKAGES_DIR}/debug/cmake/glbinding/glbinding-export-debug.cmake GLBINDING_DEBUG_MODULE) -string(REPLACE "\${IMPORT_PREFIX}" "\${IMPORT_PREFIX}/debug" GLBINDING_DEBUG_MODULE "${GLBINDING_DEBUG_MODULE}") +string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" GLBINDING_DEBUG_MODULE "${GLBINDING_DEBUG_MODULE}") +string(REPLACE "glbindingd.dll" "bin/glbindingd.dll" GLBINDING_DEBUG_MODULE "${GLBINDING_DEBUG_MODULE}") file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export-debug.cmake "${GLBINDING_DEBUG_MODULE}") -file(RENAME ${CURRENT_PACKAGES_DIR}/glbinding-config.cmake ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-config.cmake) +file(READ ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export-release.cmake RELEASE_CONF) +string(REPLACE "glbinding.dll" "bin/glbinding.dll" RELEASE_CONF "${RELEASE_CONF}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export-release.cmake "${RELEASE_CONF}") +file(REMOVE ${CURRENT_PACKAGES_DIR}/glbinding-config.cmake) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/glbinding-config.cmake) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export.cmake ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-config.cmake) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) diff --git a/ports/openssl/CMakeLists.txt b/ports/openssl/CMakeLists.txt index ff034bb9a..4ec875968 100644 --- a/ports/openssl/CMakeLists.txt +++ b/ports/openssl/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.0) project(openssl NONE) include(vcpkg_execute_required_process) +include(vcpkg_apply_patches) +set(SOURCE_PATH ${CMAKE_CURRENT_BINARY_DIR}/openssl-1.0.2h) find_package(ZLIB REQUIRED) find_program(PERL perl) @@ -9,18 +11,25 @@ find_program(NMAKE nmake) message(STATUS "Extracting source ${OPENSSL_SOURCE_ARCHIVE}") vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} -E tar xjf ${OPENSSL_SOURCE_ARCHIVE} + COMMAND ${CMAKE_COMMAND} -E tar xjf "${OPENSSL_SOURCE_ARCHIVE}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} LOGNAME extract-${TARGET_TRIPLET}-rel ) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/PerlScriptSpaceInPathFixes.patch + ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch + ${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch +) + set(CONFIGURE_COMMAND ${PERL} Configure no-idea no-mdc2 no-rc5 no-asm zlib-dynamic - --with-zlib-include=${ZLIB_INCLUDE_DIRS} + "--with-zlib-include=${ZLIB_INCLUDE_DIRS}" ) if(TARGET_TRIPLET MATCHES "x86-windows") @@ -38,15 +47,15 @@ if(CMAKE_BUILD_TYPE MATCHES "Debug") list(GET ZLIB_LIBRARIES -1 ZLIB_DEBUG_LIBRARY) list(APPEND CONFIGURE_COMMAND debug-${OPENSSL_ARCH} - --openssldir=${OPENSSLDIR} - --with-zlib-lib=${ZLIB_DEBUG_LIBRARY} + "--openssldir=${OPENSSLDIR}" + "--with-zlib-lib=${ZLIB_DEBUG_LIBRARY}" ) else() set(OPENSSLDIR ${CURRENT_PACKAGES_DIR}) list(APPEND CONFIGURE_COMMAND ${OPENSSL_ARCH} - --openssldir=${OPENSSLDIR} - --with-zlib-lib=${ZLIB_LIBRARIES} + "--openssldir=${OPENSSLDIR}" + "--with-zlib-lib=${ZLIB_LIBRARIES}" ) endif() diff --git a/ports/openssl/ConfigureIncludeQuotesFix.patch b/ports/openssl/ConfigureIncludeQuotesFix.patch new file mode 100644 index 000000000..1689ec4e0 --- /dev/null +++ b/ports/openssl/ConfigureIncludeQuotesFix.patch @@ -0,0 +1,13 @@ +diff --git a/Configure b/Configure +index c98107a..77ad9d3 100644 +--- a/Configure ++++ b/Configure +@@ -970,7 +970,7 @@ PROCESS_ARGS: + } + elsif (/^--with-zlib-include=(.*)$/) + { +- $withargs{"zlib-include"}="-I$1"; ++ $withargs{"zlib-include"}="-I\"$1\""; + } + elsif (/^--with-fipsdir=(.*)$/) + { diff --git a/ports/openssl/PerlScriptSpaceInPathFixes.patch b/ports/openssl/PerlScriptSpaceInPathFixes.patch new file mode 100644 index 000000000..b3a52fc97 --- /dev/null +++ b/ports/openssl/PerlScriptSpaceInPathFixes.patch @@ -0,0 +1,35 @@ +diff --git a/util/copy.pl b/util/copy.pl +index eba6d58..5d971a2 100644 +--- a/util/copy.pl ++++ b/util/copy.pl +@@ -19,7 +19,7 @@ foreach $arg (@ARGV) { + next; + } + $arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob... +- foreach (glob $arg) ++ foreach (glob "\"$arg\"") + { + push @filelist, $_; + } +diff --git a/util/mk1mf.pl b/util/mk1mf.pl +index 128a405..fd853da 100644 +--- a/util/mk1mf.pl ++++ b/util/mk1mf.pl +@@ -427,7 +427,7 @@ EOF + { + $extra_install .= <<"EOF" + \$(MKDIR) \"\$(INSTALLTOP)${o}lib${o}engines\" +- \$(CP) \"\$(E_SHLIB)\" \"\$(INSTALLTOP)${o}lib${o}engines\" ++ \$(CP) \$(E_SHLIB) \"\$(INSTALLTOP)${o}lib${o}engines\" + EOF + } + } +@@ -607,7 +607,7 @@ install: all + \$(MKDIR) \"\$(INSTALLTOP)${o}include${o}openssl\" + \$(MKDIR) \"\$(INSTALLTOP)${o}lib\" + \$(CP) \"\$(INCO_D)${o}*.\[ch\]\" \"\$(INSTALLTOP)${o}include${o}openssl\" +- \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep \$(INSTALLTOP)${o}bin\" ++ \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep\" \"\$(INSTALLTOP)${o}bin\" + \$(MKDIR) \"\$(OPENSSLDIR)\" + \$(CP) apps${o}openssl.cnf \"\$(OPENSSLDIR)\" + $extra_install diff --git a/ports/openssl/STRINGIFYPatch.patch b/ports/openssl/STRINGIFYPatch.patch new file mode 100644 index 000000000..dd8f9c297 --- /dev/null +++ b/ports/openssl/STRINGIFYPatch.patch @@ -0,0 +1,23 @@ +diff --git a/crypto/cversion.c b/crypto/cversion.c +index bfff699..17b7912 100644 +--- a/crypto/cversion.c ++++ b/crypto/cversion.c +@@ -56,6 +56,9 @@ + * [including the GNU Public Licence.] + */ + ++#define STRINGIFY2(x) #x ++#define STRINGIFY(x) STRINGIFY2(x) ++ + #include "cryptlib.h" + + #ifndef NO_WINDOWS_BRAINDEATH +@@ -79,7 +82,7 @@ const char *SSLeay_version(int t) + } + if (t == SSLEAY_CFLAGS) { + #ifdef CFLAGS +- return (CFLAGS); ++ return STRINGIFY(CFLAGS); + #else + return ("compiler: information not available"); + #endif diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake index 9f45f0ce4..b6085cada 100644 --- a/ports/openssl/portfile.cmake +++ b/ports/openssl/portfile.cmake @@ -12,7 +12,12 @@ vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE SHA512 780601f6f3f32f42b6d7bbc4c593db39a3575f9db80294a10a68b2b0bb79448d9bd529ca700b9977354cbdfc65887c76af0aa7b90d3ee421f74ab53e6f15c303 ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY +${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt +${CMAKE_CURRENT_LIST_DIR}/PerlScriptSpaceInPathFixes.patch +${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch +${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch +DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/sqlite3/CMakeLists.txt b/ports/sqlite3/CMakeLists.txt index 3d5f73a4a..760684493 100644 --- a/ports/sqlite3/CMakeLists.txt +++ b/ports/sqlite3/CMakeLists.txt @@ -2,15 +2,29 @@ cmake_minimum_required(VERSION 3.0) project(sqlite3 C) include_directories(${SOURCE}) -add_library(sqlite3 SHARED ${SOURCE}/sqlite3.c) -target_compile_definitions(sqlite3 PRIVATE $<$<CONFIG:Debug>:-DSQLITE_DEBUG> "-DSQLITE_API=__declspec(dllexport)") +if(BUILD_SHARED_LIBS) + set(API "-DSQLITE_API=__declspec(dllexport)") +else() + set(API "-DSQLITE_API=extern") +endif() +add_library(sqlite3 ${SOURCE}/sqlite3.c) + + +target_compile_definitions(sqlite3 PRIVATE + $<$<CONFIG:Debug>:-DSQLITE_DEBUG> + ${API} + -DSQLITE_ENABLE_RTREE + -DSQLITE_ENABLE_UNLOCK_NOTIFY + ) +target_include_directories(sqlite3 INTERFACE $<INSTALL_INTERFACE:include>) if(TRIPLET_SYSTEM_NAME MATCHES "WindowsStore") target_compile_definitions(sqlite3 PRIVATE -DSQLITE_OS_WINRT=1) endif() -install(TARGETS sqlite3 +install(TARGETS sqlite3 EXPORT sqlite3Config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES ${SOURCE}/sqlite3.h ${SOURCE}/sqlite3ext.h DESTINATION include CONFIGURATIONS Release) +install(EXPORT sqlite3Config DESTINATION share/sqlite3)
\ No newline at end of file diff --git a/ports/sqlite3/portfile.cmake b/ports/sqlite3/portfile.cmake index 6918a0788..a7999b68c 100644 --- a/ports/sqlite3/portfile.cmake +++ b/ports/sqlite3/portfile.cmake @@ -1,3 +1,4 @@ +include(${CMAKE_TRIPLET_FILE}) include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite-amalgamation-3150000) vcpkg_download_distfile(ARCHIVE @@ -14,8 +15,14 @@ vcpkg_configure_cmake( OPTIONS -DSOURCE=${SOURCE_PATH} ) - +vcpkg_build_cmake() vcpkg_install_cmake() +file(READ ${CURRENT_PACKAGES_DIR}/debug/share/sqlite3/sqlite3Config-debug.cmake SQLITE3_DEBUG_CONFIG) +string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" SQLITE3_DEBUG_CONFIG "${SQLITE3_DEBUG_CONFIG}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/sqlite3/sqlite3Config-debug.cmake "${SQLITE3_DEBUG_CONFIG}") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + file(WRITE ${CURRENT_PACKAGES_DIR}/share/sqlite3/copyright "SQLite is in the Public Domain.\nhttp://www.sqlite.org/copyright.html\n") vcpkg_copy_pdbs() diff --git a/scripts/cmake/vcpkg_apply_patches.cmake b/scripts/cmake/vcpkg_apply_patches.cmake index 939edbd14..f5d4d75f1 100644 --- a/scripts/cmake/vcpkg_apply_patches.cmake +++ b/scripts/cmake/vcpkg_apply_patches.cmake @@ -13,6 +13,16 @@ function(vcpkg_apply_patches) WORKING_DIRECTORY ${_ap_SOURCE_PATH} RESULT_VARIABLE error_code ) + + if(error_code) + message(STATUS + "Applying patch failed: ${GIT} --work-tree=. apply \"${PATCH}\" --ignore-whitespace --whitespace=nowarn --verbose\n" + "Working Directory: ${_ap_SOURCE_PATH}\n" + "See logs for more information:\n" + " ${CURRENT_BUILDTREES_DIR}/${LOGNAME}-out.log\n" + " ${CURRENT_BUILDTREES_DIR}/${LOGNAME}-err.log\n") + endif() + message(STATUS "Applying patch ${PATCH} done") math(EXPR PATCHNUM "${PATCHNUM}+1") endforeach() |
