diff options
| author | JuttaAnders <11270784+JuttaAnders@users.noreply.github.com> | 2019-03-27 19:47:15 +0100 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-03-27 11:47:15 -0700 |
| commit | c88974a2239b1de0facbf4cc096e0ad75c8e51a6 (patch) | |
| tree | 933b9a7e936f7c54ba40b0965b083781e8269665 | |
| parent | 2e04d02e9d24e12b1c14b94b4b3d43c977a49d2f (diff) | |
| download | vcpkg-c88974a2239b1de0facbf4cc096e0ad75c8e51a6.tar.gz vcpkg-c88974a2239b1de0facbf4cc096e0ad75c8e51a6.zip | |
[gdal] fix for building static library (#5839)
| -rw-r--r-- | ports/gdal/0001-Fix-debug-crt-flags.patch | 13 | ||||
| -rw-r--r-- | ports/gdal/0002-Fix-static-build.patch | 27 | ||||
| -rw-r--r-- | ports/gdal/portfile.cmake | 26 |
3 files changed, 49 insertions, 17 deletions
diff --git a/ports/gdal/0001-Fix-debug-crt-flags.patch b/ports/gdal/0001-Fix-debug-crt-flags.patch index aab3d40ca..266fc4355 100644 --- a/ports/gdal/0001-Fix-debug-crt-flags.patch +++ b/ports/gdal/0001-Fix-debug-crt-flags.patch @@ -1,9 +1,6 @@ -diff -Nuar a/nmake.opt b/nmake.opt ---- a/nmake.opt 2018-05-04 09:05:46.000000000 +0200 -+++ b/nmake.opt 2018-05-11 22:58:39.387603800 +0200 -@@ -124,11 +124,21 @@ - CXX_PDB_FLAGS= - !ENDIF +--- a/nmake.opt Fri Dec 14 22:34:20 2018 ++++ b/nmake.opt Wed Mar 27 11:00:00 2019 +@@ -133,7 +133,17 @@ +# Flags to choose CRT variant to link against (e.g. static: /MT, /MTd, dynamic: /MD, /MDd) +# Ensure MRSID_CONFIG in mrsid/nmake.opt is set appropriately as well @@ -16,12 +13,10 @@ diff -Nuar a/nmake.opt b/nmake.opt +!ENDIF + !IFNDEF OPTFLAGS - !IFNDEF DEBUG + !IF "$(DEBUG)" == "0" -OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP /MD /EHsc /Ox /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG +OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP $(CXX_CRT_FLAGS) /EHsc /Ox /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG !ELSE -OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP /MDd /EHsc /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG +OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP $(CXX_CRT_FLAGS) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG !ENDIF - !ENDIF # OPTFLAGS - diff --git a/ports/gdal/0002-Fix-static-build.patch b/ports/gdal/0002-Fix-static-build.patch new file mode 100644 index 000000000..d440ceff8 --- /dev/null +++ b/ports/gdal/0002-Fix-static-build.patch @@ -0,0 +1,27 @@ +--- a/makefile.vc Fri Dec 14 22:34:20 2018
++++ b/makefile.vc Wed Mar 27 11:00:00 2019
+@@ -60,3 +60,3 @@
+
+-default: $(TARGET_LIB) $(PLUGIN_TARGET) apps_dir
++default: $(TARGET_LIB) $(PLUGIN_TARGET)
+
+@@ -227,4 +227,2 @@
+ $(MAKE) /f makefile.vc plugins-install
+- cd ..\apps
+- $(MAKE) /f makefile.vc install
+ cd ..
+@@ -232,8 +230,2 @@
+ $(INSTALL) LICENSE.TXT $(DATADIR)
+-!IFDEF HTMLDIR
+- -mkdir $(HTMLDIR)
+- cd frmts
+- $(MAKE) /f makefile.vc html-install
+- cd ..
+-!ENDIF
+ !IFDEF INCLUDE_OGR_FRMTS
+@@ -241,5 +233,2 @@
+ $(MAKE) /f makefile.vc plugins-install
+-!IFDEF HTMLDIR
+- $(MAKE) /f makefile.vc html-install
+-!ENDIF
+ cd ..\..
diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake index 95029884a..daa9c0a04 100644 --- a/ports/gdal/portfile.cmake +++ b/ports/gdal/portfile.cmake @@ -11,9 +11,7 @@ if (TRIPLET_SYSTEM_ARCH MATCHES "arm") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - message(FATAL_ERROR "GDAL's nmake buildsystem does not support building static libraries") -elseif(VCPKG_CRT_LINKAGE STREQUAL "static") - message(FATAL_ERROR "GDAL's nmake buildsystem does not support static crt linkage") + list(APPEND NMAKE_OPTIONS "DLLBUILD=0") endif() include(vcpkg_common_functions) @@ -43,6 +41,7 @@ foreach(BUILD_TYPE IN LISTS BUILD_TYPES) SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-${GDAL_VERSION_STR} PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-debug-crt-flags.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-static-build.patch ) endforeach() @@ -64,8 +63,8 @@ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" PNG_LIBRA # Setup geos libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" GEOS_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib" GEOS_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib" GEOS_LIBRARY_DBG) +file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libgeos.lib" GEOS_LIBRARY_REL) +file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libgeosd.lib" GEOS_LIBRARY_DBG) # Setup expat libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" EXPAT_INCLUDE_DIR) @@ -155,6 +154,7 @@ endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL static) list(APPEND NMAKE_OPTIONS PROJ_FLAGS=-DPROJ_STATIC) + list(APPEND NMAKE_OPTIONS CURL_CFLAGS=-DCURL_STATICLIB) else() # Enables PDBs for release and debug builds list(APPEND NMAKE_OPTIONS WITH_PDB=1) @@ -175,11 +175,14 @@ list(APPEND NMAKE_OPTIONS_REL EXPAT_LIB=${EXPAT_LIBRARY_REL} "CURL_LIB=${CURL_LIBRARY_REL} wsock32.lib wldap32.lib winmm.lib" SQLITE_LIB=${SQLITE_LIBRARY_REL} - PG_LIB=${PGSQL_LIBRARY_REL} OPENJPEG_LIB=${OPENJPEG_LIBRARY_REL} WEBP_LIBS=${WEBP_LIBRARY_REL} LIBXML2_LIB=${XML2_LIBRARY_REL} ) +if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # Static Build does not like PG_LIB + list(APPEND NMAKE_OPTIONS_REL PG_LIB=${PGSQL_LIBRARY_REL}) +endif() list(APPEND NMAKE_OPTIONS_DBG ${NMAKE_OPTIONS} @@ -190,12 +193,15 @@ list(APPEND NMAKE_OPTIONS_DBG EXPAT_LIB=${EXPAT_LIBRARY_DBG} "CURL_LIB=${CURL_LIBRARY_DBG} wsock32.lib wldap32.lib winmm.lib" SQLITE_LIB=${SQLITE_LIBRARY_DBG} - PG_LIB=${PGSQL_LIBRARY_DBG} OPENJPEG_LIB=${OPENJPEG_LIBRARY_DBG} WEBP_LIBS=${WEBP_LIBRARY_DBG} LIBXML2_LIB=${XML2_LIBRARY_DBG} DEBUG=1 ) +if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # Static Build does not like PG_LIB + list(APPEND NMAKE_OPTIONS_REL PG_LIB=${PGSQL_LIBRARY_DBG}) +endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") ################ @@ -226,7 +232,10 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") endif() message(STATUS "Packaging ${TARGET_TRIPLET}") -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/gdal/html) + +if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/gdal/html) +endif() vcpkg_execute_required_process( COMMAND ${NMAKE} -f makefile.vc @@ -249,6 +258,7 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static) file(COPY ${SOURCE_PATH_DEBUG}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) endif() + else() set(GDAL_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/gdal) |
