aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuttaAnders <11270784+JuttaAnders@users.noreply.github.com>2019-03-27 19:47:15 +0100
committerPhil Christensen <philc@microsoft.com>2019-03-27 11:47:15 -0700
commitc88974a2239b1de0facbf4cc096e0ad75c8e51a6 (patch)
tree933b9a7e936f7c54ba40b0965b083781e8269665
parent2e04d02e9d24e12b1c14b94b4b3d43c977a49d2f (diff)
downloadvcpkg-c88974a2239b1de0facbf4cc096e0ad75c8e51a6.tar.gz
vcpkg-c88974a2239b1de0facbf4cc096e0ad75c8e51a6.zip
[gdal] fix for building static library (#5839)
-rw-r--r--ports/gdal/0001-Fix-debug-crt-flags.patch13
-rw-r--r--ports/gdal/0002-Fix-static-build.patch27
-rw-r--r--ports/gdal/portfile.cmake26
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)