diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-05-11 04:07:14 +0800 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-05-10 13:07:14 -0700 |
| commit | 14bfca23c51ca7bdeea44681677a93be1fbeb5fb (patch) | |
| tree | 329154e542a187352a979b0f76333be752813d21 | |
| parent | 3cb50e6d98793e82a44de419373d677e836464d1 (diff) | |
| download | vcpkg-14bfca23c51ca7bdeea44681677a93be1fbeb5fb.tar.gz vcpkg-14bfca23c51ca7bdeea44681677a93be1fbeb5fb.zip | |
[gdal]Add Linux/Unix support. (#6335)
| -rw-r--r-- | ports/gdal/portfile.cmake | 577 |
1 files changed, 329 insertions, 248 deletions
diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake index 35bf5e4b2..ea3ce9dbf 100644 --- a/ports/gdal/portfile.cmake +++ b/ports/gdal/portfile.cmake @@ -54,266 +54,347 @@ foreach(BUILD_TYPE IN LISTS BUILD_TYPES) ) endforeach() - -find_program(NMAKE nmake REQUIRED) - -file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR) -file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/share/gdal" NATIVE_DATA_DIR) -file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/share/gdal/html" NATIVE_HTML_DIR) - -# Setup proj4 libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PROJ_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/proj.lib" PROJ_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/projd.lib" PROJ_LIBRARY_DBG) - -# Setup libpng libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PNG_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpng16.lib" PNG_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" PNG_LIBRARY_DBG) - -# Setup zlib libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" ZLIB_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/zlib.lib" ZLIB_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib" ZLIB_LIBRARY_DBG) - -# Setup geos libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" GEOS_INCLUDE_DIR) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - 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) -else() - 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) -endif() - -# Setup expat libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" EXPAT_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/expat.lib" EXPAT_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/expat.lib" EXPAT_LIBRARY_DBG) - -# Setup curl libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CURL_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib" CURL_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl.lib" CURL_LIBRARY_DBG) - -# Setup sqlite3 libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" SQLITE_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib" SQLITE_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib" SQLITE_LIBRARY_DBG) - -# Setup PostgreSQL libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PGSQL_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpq.lib" PGSQL_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.lib" PGSQL_LIBRARY_DBG) - -# Setup OpenJPEG libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" OPENJPEG_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/openjp2.lib" OPENJPEG_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/openjp2.lib" OPENJPEG_LIBRARY_DBG) - -# Setup WebP libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" WEBP_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/webp.lib" WEBP_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/webpd.lib" WEBP_LIBRARY_DBG) - -# Setup libxml2 libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" XML2_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib" XML2_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib" XML2_LIBRARY_DBG) - -# Setup liblzma libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" LZMA_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/lzma.lib" LZMA_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib" LZMA_LIBRARY_DBG) - -if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES) - # Setup MySQL libraries + include path - if("mysql-libmysql" IN_LIST FEATURES) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" MYSQL_LIBRARY_REL) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" MYSQL_LIBRARY_DBG) - endif() - - if("mysql-libmariadb" IN_LIST FEATURES) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib" MYSQL_LIBRARY_REL) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib" MYSQL_LIBRARY_DBG) - endif() - - list(APPEND NMAKE_OPTIONS MYSQL_INC_DIR=${MYSQL_INCLUDE_DIR}) - list(APPEND NMAKE_OPTIONS_REL MYSQL_LIB=${MYSQL_LIBRARY_REL}) - list(APPEND NMAKE_OPTIONS_DBG MYSQL_LIB=${MYSQL_LIBRARY_DBG}) -endif() - -if ("libspatialite" IN_LIST FEATURES) - # Setup spatialite libraries + include path - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/spatialite" SPATIALITE_INCLUDE_DIR) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/spatialite.lib" SPATIALITE_LIBRARY_REL) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/spatialite.lib" SPATIALITE_LIBRARY_DBG) - set(HAVE_SPATIALITE "-DHAVE_SPATIALITE") -endif() - -list(APPEND NMAKE_OPTIONS - GDAL_HOME=${NATIVE_PACKAGES_DIR} - DATADIR=${NATIVE_DATA_DIR} - HTMLDIR=${NATIVE_HTML_DIR} - GEOS_DIR=${GEOS_INCLUDE_DIR} - "GEOS_CFLAGS=-I${GEOS_INCLUDE_DIR} -DHAVE_GEOS" - PROJ_INCLUDE=-I${PROJ_INCLUDE_DIR} - EXPAT_DIR=${EXPAT_INCLUDE_DIR} - EXPAT_INCLUDE=-I${EXPAT_INCLUDE_DIR} - CURL_INC=-I${CURL_INCLUDE_DIR} - "SQLITE_INC=-I${SQLITE_INCLUDE_DIR} ${HAVE_SPATIALITE}" - PG_INC_DIR=${PGSQL_INCLUDE_DIR} - OPENJPEG_ENABLED=YES - OPENJPEG_CFLAGS=-I${OPENJPEG_INCLUDE_DIR} - OPENJPEG_VERSION=20100 - WEBP_ENABLED=YES - WEBP_CFLAGS=-I${WEBP_INCLUDE_DIR} - LIBXML2_INC=-I${XML2_INCLUDE_DIR} - PNG_EXTERNAL_LIB=1 - PNGDIR=${PNG_INCLUDE_DIR} - ZLIB_INC=-I${ZLIB_INCLUDE_DIR} - ZLIB_EXTERNAL_LIB=1 - MSVC_VER=1900 -) - -if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - list(APPEND NMAKE_OPTIONS WIN64=YES) -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) -endif() - -if (VCPKG_CRT_LINKAGE STREQUAL static) - set(LINKAGE_FLAGS "/MT") -else() - set(LINKAGE_FLAGS "/MD") -endif() - -list(APPEND NMAKE_OPTIONS_REL - ${NMAKE_OPTIONS} - CXX_CRT_FLAGS=${LINKAGE_FLAGS} - PROJ_LIBRARY=${PROJ_LIBRARY_REL} - PNG_LIB=${PNG_LIBRARY_REL} - GEOS_LIB=${GEOS_LIBRARY_REL} - EXPAT_LIB=${EXPAT_LIBRARY_REL} - "CURL_LIB=${CURL_LIBRARY_REL} wsock32.lib wldap32.lib winmm.lib" - "SQLITE_LIB=${SQLITE_LIBRARY_REL} ${SPATIALITE_LIBRARY_REL}" - OPENJPEG_LIB=${OPENJPEG_LIBRARY_REL} - WEBP_LIBS=${WEBP_LIBRARY_REL} - LIBXML2_LIB=${XML2_LIBRARY_REL} - ZLIB_LIB=${ZLIB_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} - CXX_CRT_FLAGS="${LINKAGE_FLAGS}d" - PROJ_LIBRARY=${PROJ_LIBRARY_DBG} - PNG_LIB=${PNG_LIBRARY_DBG} - GEOS_LIB=${GEOS_LIBRARY_DBG} - EXPAT_LIB=${EXPAT_LIBRARY_DBG} - "CURL_LIB=${CURL_LIBRARY_DBG} wsock32.lib wldap32.lib winmm.lib" - "SQLITE_LIB=${SQLITE_LIBRARY_DBG} ${SPATIALITE_LIBRARY_DBG}" - OPENJPEG_LIB=${OPENJPEG_LIBRARY_DBG} - WEBP_LIBS=${WEBP_LIBRARY_DBG} - LIBXML2_LIB=${XML2_LIBRARY_DBG} - ZLIB_LIB=${ZLIB_LIBRARY_DBG} - DEBUG=1 -) -if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") - # Static Build does not like PG_LIB - list(APPEND NMAKE_OPTIONS_DBG PG_LIB=${PGSQL_LIBRARY_DBG}) -endif() - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - ################ - # Release build - ################ - message(STATUS "Building ${TARGET_TRIPLET}-rel") +if (WIN32) # Build in WINDOWS + # Check build system first + find_program(NMAKE nmake REQUIRED) + + file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR) + file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/share/gdal" NATIVE_DATA_DIR) + file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/share/gdal/html" NATIVE_HTML_DIR) + + # Setup proj4 libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PROJ_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/proj.lib" PROJ_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/projd.lib" PROJ_LIBRARY_DBG) + + # Setup libpng libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PNG_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpng16.lib" PNG_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" PNG_LIBRARY_DBG) + + # Setup zlib libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" ZLIB_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/zlib.lib" ZLIB_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib" ZLIB_LIBRARY_DBG) + + # Setup geos libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" GEOS_INCLUDE_DIR) + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + 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) + else() + 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) + endif() + + # Setup expat libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" EXPAT_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/expat.lib" EXPAT_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/expat.lib" EXPAT_LIBRARY_DBG) + + # Setup curl libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CURL_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib" CURL_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl.lib" CURL_LIBRARY_DBG) + + # Setup sqlite3 libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" SQLITE_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib" SQLITE_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib" SQLITE_LIBRARY_DBG) + + # Setup PostgreSQL libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PGSQL_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpq.lib" PGSQL_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.lib" PGSQL_LIBRARY_DBG) + + # Setup OpenJPEG libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" OPENJPEG_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/openjp2.lib" OPENJPEG_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/openjp2.lib" OPENJPEG_LIBRARY_DBG) + + # Setup WebP libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" WEBP_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/webp.lib" WEBP_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/webpd.lib" WEBP_LIBRARY_DBG) + + # Setup libxml2 libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" XML2_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib" XML2_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib" XML2_LIBRARY_DBG) + + # Setup liblzma libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" LZMA_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/lzma.lib" LZMA_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib" LZMA_LIBRARY_DBG) + + if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES) + # Setup MySQL libraries + include path + if("mysql-libmysql" IN_LIST FEATURES) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" MYSQL_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" MYSQL_LIBRARY_DBG) + endif() + + if("mysql-libmariadb" IN_LIST FEATURES) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib" MYSQL_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib" MYSQL_LIBRARY_DBG) + endif() + + list(APPEND NMAKE_OPTIONS MYSQL_INC_DIR=${MYSQL_INCLUDE_DIR}) + list(APPEND NMAKE_OPTIONS_REL MYSQL_LIB=${MYSQL_LIBRARY_REL}) + list(APPEND NMAKE_OPTIONS_DBG MYSQL_LIB=${MYSQL_LIBRARY_DBG}) + endif() + + if ("libspatialite" IN_LIST FEATURES) + # Setup spatialite libraries + include path + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/spatialite" SPATIALITE_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/spatialite.lib" SPATIALITE_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/spatialite.lib" SPATIALITE_LIBRARY_DBG) + set(HAVE_SPATIALITE "-DHAVE_SPATIALITE") + endif() + + list(APPEND NMAKE_OPTIONS + GDAL_HOME=${NATIVE_PACKAGES_DIR} + DATADIR=${NATIVE_DATA_DIR} + HTMLDIR=${NATIVE_HTML_DIR} + GEOS_DIR=${GEOS_INCLUDE_DIR} + "GEOS_CFLAGS=-I${GEOS_INCLUDE_DIR} -DHAVE_GEOS" + PROJ_INCLUDE=-I${PROJ_INCLUDE_DIR} + EXPAT_DIR=${EXPAT_INCLUDE_DIR} + EXPAT_INCLUDE=-I${EXPAT_INCLUDE_DIR} + CURL_INC=-I${CURL_INCLUDE_DIR} + "SQLITE_INC=-I${SQLITE_INCLUDE_DIR} ${HAVE_SPATIALITE}" + PG_INC_DIR=${PGSQL_INCLUDE_DIR} + OPENJPEG_ENABLED=YES + OPENJPEG_CFLAGS=-I${OPENJPEG_INCLUDE_DIR} + OPENJPEG_VERSION=20100 + WEBP_ENABLED=YES + WEBP_CFLAGS=-I${WEBP_INCLUDE_DIR} + LIBXML2_INC=-I${XML2_INCLUDE_DIR} + PNG_EXTERNAL_LIB=1 + PNGDIR=${PNG_INCLUDE_DIR} + ZLIB_INC=-I${ZLIB_INCLUDE_DIR} + ZLIB_EXTERNAL_LIB=1 + MSVC_VER=1900 + ) + + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + list(APPEND NMAKE_OPTIONS WIN64=YES) + 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) + endif() + + if (VCPKG_CRT_LINKAGE STREQUAL static) + set(LINKAGE_FLAGS "/MT") + else() + set(LINKAGE_FLAGS "/MD") + endif() + + list(APPEND NMAKE_OPTIONS_REL + ${NMAKE_OPTIONS} + CXX_CRT_FLAGS=${LINKAGE_FLAGS} + PROJ_LIBRARY=${PROJ_LIBRARY_REL} + PNG_LIB=${PNG_LIBRARY_REL} + GEOS_LIB=${GEOS_LIBRARY_REL} + EXPAT_LIB=${EXPAT_LIBRARY_REL} + "CURL_LIB=${CURL_LIBRARY_REL} wsock32.lib wldap32.lib winmm.lib" + "SQLITE_LIB=${SQLITE_LIBRARY_REL} ${SPATIALITE_LIBRARY_REL}" + OPENJPEG_LIB=${OPENJPEG_LIBRARY_REL} + WEBP_LIBS=${WEBP_LIBRARY_REL} + LIBXML2_LIB=${XML2_LIBRARY_REL} + ZLIB_LIB=${ZLIB_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} + CXX_CRT_FLAGS="${LINKAGE_FLAGS}d" + PROJ_LIBRARY=${PROJ_LIBRARY_DBG} + PNG_LIB=${PNG_LIBRARY_DBG} + GEOS_LIB=${GEOS_LIBRARY_DBG} + EXPAT_LIB=${EXPAT_LIBRARY_DBG} + "CURL_LIB=${CURL_LIBRARY_DBG} wsock32.lib wldap32.lib winmm.lib" + "SQLITE_LIB=${SQLITE_LIBRARY_DBG} ${SPATIALITE_LIBRARY_DBG}" + OPENJPEG_LIB=${OPENJPEG_LIBRARY_DBG} + WEBP_LIBS=${WEBP_LIBRARY_DBG} + LIBXML2_LIB=${XML2_LIBRARY_DBG} + ZLIB_LIB=${ZLIB_LIBRARY_DBG} + DEBUG=1 + ) + if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # Static Build does not like PG_LIB + list(APPEND NMAKE_OPTIONS_DBG PG_LIB=${PGSQL_LIBRARY_DBG}) + endif() + # Begin build process + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + ################ + # Release build + ################ + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc + "${NMAKE_OPTIONS_REL}" + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME nmake-build-${TARGET_TRIPLET}-release + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel done") + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + ################ + # Debug build + ################ + + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${NMAKE} /G -f makefile.vc + "${NMAKE_OPTIONS_DBG}" + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME nmake-build-${TARGET_TRIPLET}-debug + ) + message(STATUS "Building ${TARGET_TRIPLET}-dbg done") + endif() + + message(STATUS "Packaging ${TARGET_TRIPLET}") + + 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 "${NMAKE_OPTIONS_REL}" + "install" + "devinstall" WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME nmake-build-${TARGET_TRIPLET}-release + LOGNAME nmake-install-${TARGET_TRIPLET} ) - message(STATUS "Building ${TARGET_TRIPLET}-rel done") -endif() - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - ################ - # Debug build - ################ - message(STATUS "Building ${TARGET_TRIPLET}-dbg") - vcpkg_execute_required_process( - COMMAND ${NMAKE} /G -f makefile.vc - "${NMAKE_OPTIONS_DBG}" - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME nmake-build-${TARGET_TRIPLET}-debug - ) - message(STATUS "Building ${TARGET_TRIPLET}-dbg done") -endif() - -message(STATUS "Packaging ${TARGET_TRIPLET}") - -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 - "${NMAKE_OPTIONS_REL}" - "install" - "devinstall" - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME nmake-install-${TARGET_TRIPLET} -) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib) - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(COPY ${SOURCE_PATH_RELEASE}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + + if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(COPY ${SOURCE_PATH_RELEASE}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + 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) + file(MAKE_DIRECTORY ${GDAL_TOOL_PATH}) + + file(GLOB GDAL_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe) + file(COPY ${GDAL_TOOLS} DESTINATION ${GDAL_TOOL_PATH}) + file(REMOVE_RECURSE ${GDAL_TOOLS}) + + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) + endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(COPY ${SOURCE_PATH_DEBUG}/gdal${GDAL_VERSION_LIB}.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(COPY ${SOURCE_PATH_DEBUG}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) + endif() endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - 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) + + # Copy over PDBs + vcpkg_copy_pdbs() + +elseif (UNIX) # Build in UNIX + # Check build system first + find_program(MAKE make) + if (NOT MAKE) + message(FATAL_ERROR "MAKE not found") endif() - -else() - - set(GDAL_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/gdal) - file(MAKE_DIRECTORY ${GDAL_TOOL_PATH}) - - file(GLOB GDAL_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe) - file(COPY ${GDAL_TOOLS} DESTINATION ${GDAL_TOOL_PATH}) - file(REMOVE_RECURSE ${GDAL_TOOLS}) - - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) - + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) + ################ + # Release build + ################ + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") + set(OUT_PATH_RELEASE ${SOURCE_PATH_RELEASE}/../../make-build-${TARGET_TRIPLET}-release) + file(MAKE_DIRECTORY ${OUT_PATH_RELEASE}) + vcpkg_execute_required_process( + COMMAND "${SOURCE_PATH_RELEASE}/configure" --prefix=${OUT_PATH_RELEASE} + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME config-${TARGET_TRIPLET}-rel + ) + + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND make + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME make-build-${TARGET_TRIPLET}-release + ) + + message(STATUS "Installing ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND make install + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME make-install-${TARGET_TRIPLET}-release + ) + + file(REMOVE_RECURSE ${OUT_PATH_RELEASE}/lib/gdalplugins) + file(COPY ${OUT_PATH_RELEASE}/lib/pkgconfig DESTINATION ${OUT_PATH_RELEASE}/share/gdal) + file(REMOVE_RECURSE ${OUT_PATH_RELEASE}/lib/pkgconfig) + file(COPY ${OUT_PATH_RELEASE}/lib DESTINATION ${CURRENT_PACKAGES_DIR}) + file(COPY ${OUT_PATH_RELEASE}/include DESTINATION ${CURRENT_PACKAGES_DIR}) + file(COPY ${OUT_PATH_RELEASE}/share DESTINATION ${CURRENT_PACKAGES_DIR}) + message(STATUS "Installing ${TARGET_TRIPLET}-rel done") endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(COPY ${SOURCE_PATH_DEBUG}/gdal${GDAL_VERSION_LIB}.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(COPY ${SOURCE_PATH_DEBUG}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) + ################ + # Debug build + ################ + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") + set(OUT_PATH_DEBUG ${SOURCE_PATH_RELEASE}/../../make-build-${TARGET_TRIPLET}-debug) + file(MAKE_DIRECTORY ${OUT_PATH_DEBUG}) + vcpkg_execute_required_process( + COMMAND "${SOURCE_PATH_DEBUG}/configure" --prefix=${OUT_PATH_DEBUG} + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME config-${TARGET_TRIPLET}-debug + ) + + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND make + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME make-build-${TARGET_TRIPLET}-debug + ) + + message(STATUS "Installing ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND make -j install + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME make-install-${TARGET_TRIPLET}-debug + ) + + file(REMOVE_RECURSE ${OUT_PATH_DEBUG}/lib/gdalplugins) + file(REMOVE_RECURSE ${OUT_PATH_DEBUG}/lib/pkgconfig) + file(COPY ${OUT_PATH_DEBUG}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug) + message(STATUS "Installing ${TARGET_TRIPLET}-dbg done") endif() +else() # Other build system + message(FATAL_ERROR "Unsupport build system.") endif() -# Copy over PDBs -vcpkg_copy_pdbs() - # Handle copyright configure_file(${SOURCE_PATH_RELEASE}/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/gdal/copyright COPYONLY) |
