From fdfe770571b3711bbc1c708e0ea95766b0bc8e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Fri, 20 Nov 2020 10:29:25 -0800 Subject: [gdal] Update to 3.1.3 (#13449) * [vcpkg_*_nmake] Add option INSTALL_COMMAND * [gdal] Update to 3.1.3 and switch to vcpkg_*_nmake on Windows * [vcpkg_build_make] Add option MAKEFILE * fix install on windows, fix linux build * fix options position * [gdal] Fix linux build * [gdal] Fix expat library name * [gdal] Fix geos library name * [gdal] Fix cmake wrapper * [pdal] Fix dependency geos * [pdal] Fix PDALConfig.cmake * [gdal] Fix dependency cfitsio on *inx * disable cfitsio temporary * [gdal] Correct cmake wrapper and usage * [gdal] Fix tools on windows-static * Revert a9ac823007975485aacc7e1f3eb4053e295376e1 * Apply suggestions * [vcpkg_build_nmake] Fix install command * [vcpkg_build_nmake] Fix install command * regenerate docs * [gdal] Update dependency iconv and charset library names * [gdal] add json-c as a dependency on non-windows Co-authored-by: Billy Robert O'Neal III Co-authored-by: Nicole Mazzuca --- scripts/cmake/execute_process.cmake | 4 ++-- scripts/cmake/vcpkg_build_make.cmake | 22 +++++++++++++++------- scripts/cmake/vcpkg_build_nmake.cmake | 19 +++++++++++++------ scripts/cmake/vcpkg_install_nmake.cmake | 10 +++++++++- 4 files changed, 39 insertions(+), 16 deletions(-) (limited to 'scripts') diff --git a/scripts/cmake/execute_process.cmake b/scripts/cmake/execute_process.cmake index 97af4eea1..76a3d9a8b 100644 --- a/scripts/cmake/execute_process.cmake +++ b/scripts/cmake/execute_process.cmake @@ -3,7 +3,7 @@ ## Intercepts all calls to execute_process() inside portfiles and fails when Download Mode ## is enabled. ## -## In order to execute a process in Download Mode call `_execute_process()` instead. +## In order to execute a process in Download Mode call `vcpkg_execute_in_download_mode()` instead. ## if (NOT DEFINED OVERRIDEN_EXECUTE_PROCESS) set(OVERRIDEN_EXECUTE_PROCESS ON) @@ -17,4 +17,4 @@ if (NOT DEFINED OVERRIDEN_EXECUTE_PROCESS) execute_process(${ARGV}) endmacro() endif() -endif() \ No newline at end of file +endif() diff --git a/scripts/cmake/vcpkg_build_make.cmake b/scripts/cmake/vcpkg_build_make.cmake index a6adebc43..6deded647 100644 --- a/scripts/cmake/vcpkg_build_make.cmake +++ b/scripts/cmake/vcpkg_build_make.cmake @@ -7,6 +7,7 @@ ## vcpkg_build_make([BUILD_TARGET ] ## [ADD_BIN_TO_PATH] ## [ENABLE_INSTALL]) +## [MAKEFILE ] ## [LOGFILE_ROOT ]) ## ``` ## @@ -20,6 +21,9 @@ ## ### ENABLE_INSTALL ## IF the port supports the install target use vcpkg_install_make() instead of vcpkg_build_make() ## +## ### MAKEFILE +## Specifies the Makefile as a relative path from the root of the sources passed to `vcpkg_configure_make()` +## ## ### BUILD_TARGET ## The target passed to the make build command (`./make `). If not specified, the 'all' target will ## be passed. @@ -49,7 +53,7 @@ function(vcpkg_build_make) include("${_VCPKG_CMAKE_VARS_FILE}") # parse parameters such that semicolons in options arguments to COMMAND don't get erased - cmake_parse_arguments(PARSE_ARGV 0 _bc "ADD_BIN_TO_PATH;ENABLE_INSTALL;DISABLE_PARALLEL" "LOGFILE_ROOT;BUILD_TARGET;SUBPATH" "") + cmake_parse_arguments(PARSE_ARGV 0 _bc "ADD_BIN_TO_PATH;ENABLE_INSTALL;DISABLE_PARALLEL" "LOGFILE_ROOT;BUILD_TARGET;SUBPATH;MAKEFILE" "") if(NOT _bc_LOGFILE_ROOT) set(_bc_LOGFILE_ROOT "build") @@ -59,6 +63,10 @@ function(vcpkg_build_make) set(_bc_BUILD_TARGET "all") endif() + if (NOT _bc_MAKEFILE) + set(_bc_MAKEFILE Makefile) + endif() + if(WIN32) set(_VCPKG_PREFIX ${CURRENT_PACKAGES_DIR}) set(_VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) @@ -76,22 +84,22 @@ function(vcpkg_build_make) vcpkg_acquire_msys(MSYS_ROOT) find_program(MAKE make REQUIRED) set(MAKE_COMMAND "${MAKE}") - set(MAKE_OPTS ${_bc_MAKE_OPTIONS} -j ${VCPKG_CONCURRENCY} --trace -f Makefile ${_bc_BUILD_TARGET}) - set(NO_PARALLEL_MAKE_OPTS ${_bc_MAKE_OPTIONS} -j 1 --trace -f Makefile ${_bc_BUILD_TARGET}) + set(MAKE_OPTS ${_bc_MAKE_OPTIONS} -j ${VCPKG_CONCURRENCY} --trace -f ${_bc_MAKEFILE} ${_bc_BUILD_TARGET}) + set(NO_PARALLEL_MAKE_OPTS ${_bc_MAKE_OPTIONS} -j 1 --trace -f ${_bc_MAKEFILE} ${_bc_BUILD_TARGET}) string(REPLACE " " "\\\ " _VCPKG_PACKAGE_PREFIX ${CURRENT_PACKAGES_DIR}) # Don't know why '/cygdrive' is suddenly a requirement here. (at least for x264) string(REGEX REPLACE "([a-zA-Z]):/" "/cygdrive/\\1/" _VCPKG_PACKAGE_PREFIX "${_VCPKG_PACKAGE_PREFIX}") - set(INSTALL_OPTS -j ${VCPKG_CONCURRENCY} --trace -f Makefile install DESTDIR=${_VCPKG_PACKAGE_PREFIX}) + set(INSTALL_OPTS -j ${VCPKG_CONCURRENCY} --trace -f ${_bc_MAKEFILE} install DESTDIR=${_VCPKG_PACKAGE_PREFIX}) #TODO: optimize for install-data (release) and install-exec (release/debug) else() # Compiler requriements find_program(MAKE make REQUIRED) set(MAKE_COMMAND "${MAKE}") # Set make command and install command - set(MAKE_OPTS ${_bc_MAKE_OPTIONS} V=1 -j ${VCPKG_CONCURRENCY} -f Makefile ${_bc_BUILD_TARGET}) - set(NO_PARALLEL_MAKE_OPTS ${_bc_MAKE_OPTIONS} V=1 -j 1 -f Makefile ${_bc_BUILD_TARGET}) - set(INSTALL_OPTS -j ${VCPKG_CONCURRENCY} -f Makefile install DESTDIR=${CURRENT_PACKAGES_DIR}) + set(MAKE_OPTS ${_bc_MAKE_OPTIONS} V=1 -j ${VCPKG_CONCURRENCY} -f ${_bc_MAKEFILE} ${_bc_BUILD_TARGET}) + set(NO_PARALLEL_MAKE_OPTS ${_bc_MAKE_OPTIONS} V=1 -j 1 -f ${_bc_MAKEFILE} ${_bc_BUILD_TARGET}) + set(INSTALL_OPTS -j ${VCPKG_CONCURRENCY} -f ${_bc_MAKEFILE} install DESTDIR=${CURRENT_PACKAGES_DIR}) endif() # Since includes are buildtype independent those are setup by vcpkg_configure_make diff --git a/scripts/cmake/vcpkg_build_nmake.cmake b/scripts/cmake/vcpkg_build_nmake.cmake index 371dea0ee..7f81ca293 100644 --- a/scripts/cmake/vcpkg_build_nmake.cmake +++ b/scripts/cmake/vcpkg_build_nmake.cmake @@ -7,6 +7,7 @@ ## vcpkg_build_nmake( ## SOURCE_PATH <${SOURCE_PATH}> ## [NO_DEBUG] +## [TARGET ] ## [PROJECT_SUBPATH <${SUBPATH}>] ## [PROJECT_NAME <${MAKEFILE_NAME}>] ## [PRERUN_SHELL <${SHELL_PATH}>] @@ -75,7 +76,7 @@ function(vcpkg_build_nmake) cmake_parse_arguments(PARSE_ARGV 0 _bn "ADD_BIN_TO_PATH;ENABLE_INSTALL;NO_DEBUG" "SOURCE_PATH;PROJECT_SUBPATH;PROJECT_NAME;LOGFILE_ROOT" - "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE" + "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE;TARGET" ) if (NOT CMAKE_HOST_WIN32) @@ -98,7 +99,6 @@ function(vcpkg_build_nmake) set(MAKE ) set(MAKE_OPTS_BASE ) - set(INSTALL_OPTS_BASE ) find_program(NMAKE nmake REQUIRED) get_filename_component(NMAKE_EXE_PATH ${NMAKE} DIRECTORY) @@ -112,8 +112,15 @@ function(vcpkg_build_nmake) set(ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include;$ENV{INCLUDE}") # Set make command and install command set(MAKE ${NMAKE} /NOLOGO /G /U) - set(MAKE_OPTS_BASE -f ${MAKEFILE_NAME} all) - set(INSTALL_OPTS_BASE install) + set(MAKE_OPTS_BASE -f ${MAKEFILE_NAME}) + if (_bn_ENABLE_INSTALL) + set(INSTALL_COMMAND install) + endif() + if (_bn_TARGET) + set(MAKE_OPTS_BASE ${MAKE_OPTS_BASE} ${_bn_TARGET} ${INSTALL_COMMAND}) + else() + set(MAKE_OPTS_BASE ${MAKE_OPTS_BASE} all ${INSTALL_COMMAND}) + endif() # Add subpath to work directory if (_bn_PROJECT_SUBPATH) set(_bn_PROJECT_SUBPATH /${_bn_PROJECT_SUBPATH}) @@ -134,7 +141,7 @@ function(vcpkg_build_nmake) # Add install command and arguments set(MAKE_OPTS ${MAKE_OPTS_BASE}) if (_bn_ENABLE_INSTALL) - set(INSTALL_OPTS ${INSTALL_OPTS_BASE} INSTALLDIR=${CURRENT_PACKAGES_DIR}/debug) + set(INSTALL_OPTS INSTALLDIR=${CURRENT_PACKAGES_DIR}/debug) set(MAKE_OPTS ${MAKE_OPTS} ${INSTALL_OPTS}) endif() set(MAKE_OPTS ${MAKE_OPTS} ${_bn_OPTIONS} ${_bn_OPTIONS_DEBUG}) @@ -154,7 +161,7 @@ function(vcpkg_build_nmake) # Add install command and arguments set(MAKE_OPTS ${MAKE_OPTS_BASE}) if (_bn_ENABLE_INSTALL) - set(INSTALL_OPTS ${INSTALL_OPTS_BASE} INSTALLDIR=${CURRENT_PACKAGES_DIR}) + set(INSTALL_OPTS INSTALLDIR=${CURRENT_PACKAGES_DIR}) set(MAKE_OPTS ${MAKE_OPTS} ${INSTALL_OPTS}) endif() set(MAKE_OPTS ${MAKE_OPTS} ${_bn_OPTIONS} ${_bn_OPTIONS_RELEASE}) diff --git a/scripts/cmake/vcpkg_install_nmake.cmake b/scripts/cmake/vcpkg_install_nmake.cmake index c4d600cc6..05efce2e2 100644 --- a/scripts/cmake/vcpkg_install_nmake.cmake +++ b/scripts/cmake/vcpkg_install_nmake.cmake @@ -7,6 +7,7 @@ ## vcpkg_install_nmake( ## SOURCE_PATH <${SOURCE_PATH}> ## [NO_DEBUG] +## [TARGET ] ## PROJECT_SUBPATH <${SUBPATH}> ## PROJECT_NAME <${MAKEFILE_NAME}> ## [PRERUN_SHELL <${SHELL_PATH}>] @@ -66,7 +67,7 @@ function(vcpkg_install_nmake) cmake_parse_arguments(PARSE_ARGV 0 _in "NO_DEBUG" "SOURCE_PATH;PROJECT_SUBPATH;PROJECT_NAME" - "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE" + "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE;TARGET" ) if (NOT CMAKE_HOST_WIN32) @@ -77,8 +78,15 @@ function(vcpkg_install_nmake) set(NO_DEBUG NO_DEBUG) endif() + if (NOT _in_TARGET) + set(INSTALL_TARGET "all") + else() + set(INSTALL_TARGET "${_in_TARGET}") + endif() + vcpkg_build_nmake(LOGFILE_ROOT ENABLE_INSTALL ${NO_DEBUG} + TARGET "${INSTALL_TARGET}" SOURCE_PATH ${_in_SOURCE_PATH} PROJECT_SUBPATH ${_in_PROJECT_SUBPATH} PROJECT_NAME ${_in_PROJECT_NAME} PRERUN_SHELL ${_in_PRERUN_SHELL} PRERUN_SHELL_DEBUG ${_in_PRERUN_SHELL_DEBUG} PRERUN_SHELL_RELEASE ${_in_PRERUN_SHELL_RELEASE} OPTIONS ${_in_OPTIONS} OPTIONS_RELEASE ${_in_OPTIONS_RELEASE} OPTIONS_DEBUG ${_in_OPTIONS_DEBUG} -- cgit v1.2.3