aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2020-11-20 10:29:25 -0800
committerGitHub <noreply@github.com>2020-11-20 10:29:25 -0800
commitfdfe770571b3711bbc1c708e0ea95766b0bc8e51 (patch)
tree4b70a928c78090278196f36694803433d8e664c5
parent46068e8a37b41a7a0ba4f485a90d88d3a1071f33 (diff)
downloadvcpkg-fdfe770571b3711bbc1c708e0ea95766b0bc8e51.tar.gz
vcpkg-fdfe770571b3711bbc1c708e0ea95766b0bc8e51.zip
[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 <bion@microsoft.com> Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
-rw-r--r--docs/maintainers/portfile-functions.md9
-rw-r--r--docs/maintainers/vcpkg_acquire_msys.md23
-rw-r--r--docs/maintainers/vcpkg_build_make.md10
-rw-r--r--docs/maintainers/vcpkg_build_nmake.md1
-rw-r--r--docs/maintainers/vcpkg_check_linkage.md4
-rw-r--r--docs/maintainers/vcpkg_common_definitions.md1
-rw-r--r--docs/maintainers/vcpkg_configure_cmake.md3
-rw-r--r--docs/maintainers/vcpkg_configure_make.md33
-rw-r--r--docs/maintainers/vcpkg_download_distfile.md3
-rw-r--r--docs/maintainers/vcpkg_execute_in_download_mode.md29
-rw-r--r--docs/maintainers/vcpkg_execute_required_process.md12
-rw-r--r--docs/maintainers/vcpkg_find_acquire_program.md1
-rw-r--r--docs/maintainers/vcpkg_find_fortran.md14
-rw-r--r--docs/maintainers/vcpkg_fixup_pkgconfig.md10
-rw-r--r--docs/maintainers/vcpkg_from_github.md3
-rw-r--r--docs/maintainers/vcpkg_install_nmake.md1
-rw-r--r--docs/maintainers/vcpkg_internal_get_cmake_vars.md29
-rw-r--r--ports/gdal/0001-Fix-debug-crt-flags.patch20
-rw-r--r--ports/gdal/0002-Fix-build.patch38
-rw-r--r--ports/gdal/0002-Fix-static-build.patch27
-rw-r--r--ports/gdal/0003-Fix-static-build.patch22
-rw-r--r--ports/gdal/0003-Fix-std-fabs.patch10
-rw-r--r--ports/gdal/0004-Fix-std-fabs.patch12
-rw-r--r--ports/gdal/0005-Fix-cfitsio.patch13
-rw-r--r--ports/gdal/CONTROL5
-rw-r--r--ports/gdal/dependency_win.cmake120
-rw-r--r--ports/gdal/portfile.cmake404
-rw-r--r--ports/gdal/usage4
-rw-r--r--ports/gdal/vcpkg-cmake-wrapper.cmake8
-rw-r--r--ports/pdal/PDALConfig.patch14
-rw-r--r--ports/pdal/fix-dependency.patch33
-rw-r--r--ports/pdal/portfile.cmake1
-rw-r--r--scripts/cmake/execute_process.cmake4
-rw-r--r--scripts/cmake/vcpkg_build_make.cmake22
-rw-r--r--scripts/cmake/vcpkg_build_nmake.cmake19
-rw-r--r--scripts/cmake/vcpkg_install_nmake.cmake10
36 files changed, 549 insertions, 423 deletions
diff --git a/docs/maintainers/portfile-functions.md b/docs/maintainers/portfile-functions.md
index 887311127..943afa6e7 100644
--- a/docs/maintainers/portfile-functions.md
+++ b/docs/maintainers/portfile-functions.md
@@ -1,5 +1,5 @@
-<!-- Run regenerate.ps1 to extract documentation from scripts\cmake\*.cmake -->
-
+<!-- Run regenerate.ps1 to extract documentation from scripts\cmake\*.cmake -->
+
# Portfile helper functions
- [execute\_process](execute_process.md)
- [vcpkg\_acquire\_msys](vcpkg_acquire_msys.md)
@@ -21,15 +21,17 @@
- [vcpkg\_configure\_make](vcpkg_configure_make.md)
- [vcpkg\_configure\_meson](vcpkg_configure_meson.md)
- [vcpkg\_copy\_pdbs](vcpkg_copy_pdbs.md)
-- [vcpkg\_copy\_tools](vcpkg_copy_tools.md)
- [vcpkg\_copy\_tool\_dependencies](vcpkg_copy_tool_dependencies.md)
+- [vcpkg\_copy\_tools](vcpkg_copy_tools.md)
- [vcpkg\_download\_distfile](vcpkg_download_distfile.md)
- [vcpkg\_execute\_build\_process](vcpkg_execute_build_process.md)
+- [vcpkg\_execute\_in\_download\_mode](vcpkg_execute_in_download_mode.md)
- [vcpkg\_execute\_required\_process](vcpkg_execute_required_process.md)
- [vcpkg\_extract\_source\_archive](vcpkg_extract_source_archive.md)
- [vcpkg\_extract\_source\_archive\_ex](vcpkg_extract_source_archive_ex.md)
- [vcpkg\_fail\_port\_install](vcpkg_fail_port_install.md)
- [vcpkg\_find\_acquire\_program](vcpkg_find_acquire_program.md)
+- [vcpkg\_find\_fortran](vcpkg_find_fortran.md)
- [vcpkg\_fixup\_cmake\_targets](vcpkg_fixup_cmake_targets.md)
- [vcpkg\_fixup\_pkgconfig](vcpkg_fixup_pkgconfig.md)
- [vcpkg\_from\_bitbucket](vcpkg_from_bitbucket.md)
@@ -44,4 +46,5 @@
- [vcpkg\_install\_msbuild](vcpkg_install_msbuild.md)
- [vcpkg\_install\_nmake](vcpkg_install_nmake.md)
- [vcpkg\_install\_qmake](vcpkg_install_qmake.md)
+- [vcpkg\_internal\_get\_cmake\_vars](vcpkg_internal_get_cmake_vars.md)
- [vcpkg\_prettify\_command](vcpkg_prettify_command.md)
diff --git a/docs/maintainers/vcpkg_acquire_msys.md b/docs/maintainers/vcpkg_acquire_msys.md
index 4dc8f5391..5dd075a70 100644
--- a/docs/maintainers/vcpkg_acquire_msys.md
+++ b/docs/maintainers/vcpkg_acquire_msys.md
@@ -4,7 +4,11 @@ Download and prepare an MSYS2 instance.
## Usage
```cmake
-vcpkg_acquire_msys(<MSYS_ROOT_VAR> [PACKAGES <package>...])
+vcpkg_acquire_msys(<MSYS_ROOT_VAR>
+ PACKAGES <package>...
+ [NO_DEFAULT_PACKAGES]
+ [DIRECT_PACKAGES <URL> <SHA512> <URL> <SHA512> ...]
+)
```
## Parameters
@@ -14,7 +18,22 @@ An out-variable that will be set to the path to MSYS2.
### PACKAGES
A list of packages to acquire in msys.
-To ensure a package is available: `vcpkg_acquire_msys(MSYS_ROOT PACKAGES make automake1.15)`
+To ensure a package is available: `vcpkg_acquire_msys(MSYS_ROOT PACKAGES make automake1.16)`
+
+### NO_DEFAULT_PACKAGES
+Exclude the normal base packages.
+
+The list of base packages includes: bash, coreutils, sed, grep, gawk, diffutils, make, and pkg-config
+
+### DIRECT_PACKAGES
+A list of URL/SHA512 pairs to acquire in msys.
+
+This parameter can be used by a port to privately extend the list of msys packages to be acquired.
+The URLs can be found on the msys2 website[1] and should be a direct archive link:
+
+ https://repo.msys2.org/mingw/i686/mingw-w64-i686-gettext-0.19.8.1-9-any.pkg.tar.zst
+
+[1] https://packages.msys2.org/search
## Notes
A call to `vcpkg_acquire_msys` will usually be followed by a call to `bash.exe`:
diff --git a/docs/maintainers/vcpkg_build_make.md b/docs/maintainers/vcpkg_build_make.md
index 3332191d1..de44a84d4 100644
--- a/docs/maintainers/vcpkg_build_make.md
+++ b/docs/maintainers/vcpkg_build_make.md
@@ -7,6 +7,7 @@ Build a linux makefile project.
vcpkg_build_make([BUILD_TARGET <target>]
[ADD_BIN_TO_PATH]
[ENABLE_INSTALL])
+ [MAKEFILE <makefileName>]
[LOGFILE_ROOT <logfileroot>])
```
@@ -20,10 +21,19 @@ Adds the appropriate Release and Debug `bin\` directories to the path during the
### 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 <target>`). If not specified, the 'all' target will
be passed.
+### DISABLE_PARALLEL
+The underlying buildsystem will be instructed to not parallelize
+
+### SUBPATH
+Additional subdir to invoke make in. Useful if only parts of a port should be built.
+
## Notes:
This command should be preceeded by a call to [`vcpkg_configure_make()`](vcpkg_configure_make.md).
You can use the alias [`vcpkg_install_make()`](vcpkg_configure_make.md) function if your CMake script supports the
diff --git a/docs/maintainers/vcpkg_build_nmake.md b/docs/maintainers/vcpkg_build_nmake.md
index c9f4cc5d9..1daa0717f 100644
--- a/docs/maintainers/vcpkg_build_nmake.md
+++ b/docs/maintainers/vcpkg_build_nmake.md
@@ -7,6 +7,7 @@ Build a msvc makefile project.
vcpkg_build_nmake(
SOURCE_PATH <${SOURCE_PATH}>
[NO_DEBUG]
+ [TARGET <all>]
[PROJECT_SUBPATH <${SUBPATH}>]
[PROJECT_NAME <${MAKEFILE_NAME}>]
[PRERUN_SHELL <${SHELL_PATH}>]
diff --git a/docs/maintainers/vcpkg_check_linkage.md b/docs/maintainers/vcpkg_check_linkage.md
index eb20e97c8..406325dba 100644
--- a/docs/maintainers/vcpkg_check_linkage.md
+++ b/docs/maintainers/vcpkg_check_linkage.md
@@ -28,7 +28,7 @@ This command will either alter the settings for `VCPKG_LIBRARY_LINKAGE` or fail,
## Examples
-* [abseil](https://github.com/Microsoft/vcpkg/blob/master/ports/abseil/portfile.cmake)
+* [libimobiledevice](https://github.com/Microsoft/vcpkg/blob/master/ports/libimobiledevice/portfile.cmake)
## Source
-[scripts/cmake/vcpkg_check_linkage.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_check_linkage.cmake)
+[scripts/cmake/vcpkg_check_linkage.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_check_linkage.cmake)
diff --git a/docs/maintainers/vcpkg_common_definitions.md b/docs/maintainers/vcpkg_common_definitions.md
index 21b05aa1d..9c16deba3 100644
--- a/docs/maintainers/vcpkg_common_definitions.md
+++ b/docs/maintainers/vcpkg_common_definitions.md
@@ -5,6 +5,7 @@ File contains helpful variabls for portfiles which are commonly needed or used.
## The following variables are available:
```cmake
VCPKG_TARGET_IS_<target> with <target> being one of the following: WINDOWS, UWP, LINUX, OSX, ANDROID, FREEBSD. only defined if <target>
+VCPKG_HOST_IS_<target> with <host> being one of the following: WINDOWS, LINUX, OSX, FREEBSD. only defined if <host>
VCPKG_HOST_PATH_SEPARATOR Host specific path separator (USAGE: "<something>${VCPKG_HOST_PATH_SEPARATOR}<something>"; only use and pass variables with VCPKG_HOST_PATH_SEPARATOR within "")
VCPKG_HOST_EXECUTABLE_SUFFIX executable suffix of the host
VCPKG_TARGET_EXECUTABLE_SUFFIX executable suffix of the target
diff --git a/docs/maintainers/vcpkg_configure_cmake.md b/docs/maintainers/vcpkg_configure_cmake.md
index 00324dc1c..92e5dbb77 100644
--- a/docs/maintainers/vcpkg_configure_cmake.md
+++ b/docs/maintainers/vcpkg_configure_cmake.md
@@ -51,6 +51,9 @@ Additional options passed to CMake during the Release configuration. These are i
### OPTIONS_DEBUG
Additional options passed to CMake during the Debug configuration. These are in addition to `OPTIONS`.
+### LOGNAME
+Name of the log to write the output of the configure call to.
+
## Notes
This command supplies many common arguments to CMake. To see the full list, examine the source.
diff --git a/docs/maintainers/vcpkg_configure_make.md b/docs/maintainers/vcpkg_configure_make.md
index 43f7e45f1..6e7f6fa95 100644
--- a/docs/maintainers/vcpkg_configure_make.md
+++ b/docs/maintainers/vcpkg_configure_make.md
@@ -7,6 +7,13 @@ Configure configure for Debug and Release builds of a project.
vcpkg_configure_make(
SOURCE_PATH <${SOURCE_PATH}>
[AUTOCONFIG]
+ [USE_WRAPPERS]
+ [DETERMINE_BUILD_TRIPLET]
+ [BUILD_TRIPLET "--host=x64 --build=i686-unknown-pc"]
+ [NO_ADDITIONAL_PATHS]
+ [CONFIG_DEPENDENT_ENVIRONMENT <SOME_VAR>...]
+ [CONFIGURE_ENVIRONMENT_VARIABLES <SOME_ENVVAR>...]
+ [ADD_BIN_TO_PATH]
[NO_DEBUG]
[SKIP_CONFIGURE]
[PROJECT_SUBPATH <${PROJ_SUBPATH}>]
@@ -29,12 +36,30 @@ By convention, this is usually set in the portfile as the variable `SOURCE_PATH`
### SKIP_CONFIGURE
Skip configure process
+### USE_WRAPPERS
+Use autotools ar-lib and compile wrappers (only applies to windows cl and lib)
+
+### BUILD_TRIPLET
+Used to pass custom --build/--target/--host to configure. Can be globally overwritten by VCPKG_MAKE_BUILD_TRIPLET
+
+### DETERMINE_BUILD_TRIPLET
+For ports having a configure script following the autotools rules for selecting the triplet
+
+### NO_ADDITIONAL_PATHS
+Don't pass any additional paths except for --prefix to the configure call
+
### AUTOCONFIG
Need to use autoconfig to generate configure file.
### PRERUN_SHELL
Script that needs to be called before configuration (do not use for batch files which simply call autoconf or configure)
+### ADD_BIN_TO_PATH
+Adds the appropriate Release and Debug `bin\` directories to the path during configure such that executables can run against the in-tree DLLs.
+
+## DISABLE_VERBOSE_FLAGS
+do not pass '--disable-silent-rules --verbose' to configure
+
### OPTIONS
Additional options passed to configure during the configuration.
@@ -44,6 +69,14 @@ Additional options passed to configure during the Release configuration. These a
### OPTIONS_DEBUG
Additional options passed to configure during the Debug configuration. These are in addition to `OPTIONS`.
+### CONFIG_DEPENDENT_ENVIRONMENT
+List of additional configuration dependent environment variables to set.
+Pass SOMEVAR to set the environment and have SOMEVAR_(DEBUG|RELEASE) set in the portfile to the appropriate values
+General environment variables can be set from within the portfile itself.
+
+### CONFIGURE_ENVIRONMENT_VARIABLES
+List of additional environment variables to pass via the configure call.
+
## Notes
This command supplies many common arguments to configure. To see the full list, examine the source.
diff --git a/docs/maintainers/vcpkg_download_distfile.md b/docs/maintainers/vcpkg_download_distfile.md
index 18bdf9dc7..36c9ff2c0 100644
--- a/docs/maintainers/vcpkg_download_distfile.md
+++ b/docs/maintainers/vcpkg_download_distfile.md
@@ -28,6 +28,9 @@ The expected hash for the file.
If this doesn't match the downloaded version, the build will be terminated with a message describing the mismatch.
+### QUIET
+Suppress output on cache hit
+
### SKIP_SHA512
Skip SHA512 hash check for file.
diff --git a/docs/maintainers/vcpkg_execute_in_download_mode.md b/docs/maintainers/vcpkg_execute_in_download_mode.md
new file mode 100644
index 000000000..0a7f8a8f7
--- /dev/null
+++ b/docs/maintainers/vcpkg_execute_in_download_mode.md
@@ -0,0 +1,29 @@
+# vcpkg_execute_in_download_mode
+
+Execute a process even in download mode.
+
+## Usage
+```cmake
+vcpkg_execute_in_download_mode(
+ COMMAND <cmd> [<arguments>...]
+ OUTPUT_QUIET ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE
+ WORKING_DIRECTORY <dir>
+ TIMEOUT <seconds>
+ RESULT_VARIABLE <seconds>
+ OUTPUT_VARIABLE <var_out>
+ ERROR_VARIABLE <var_err>
+ INPUT_FILE <f_in>
+ OUTPUT_FILE <f_out>
+ ERROR_FILE <f_err>
+ ENCODING <enc>
+)
+```
+
+The signature of this function is identical with `execute_process()` except that
+it only accepts one COMMAND argument, i.e., does not support chaining multiple
+commands with pipes.
+
+See `execute_process()` for a detailed description of the parameters.
+
+## Source
+[scripts/cmake/vcpkg_execute_in_download_mode.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_execute_in_download_mode.cmake)
diff --git a/docs/maintainers/vcpkg_execute_required_process.md b/docs/maintainers/vcpkg_execute_required_process.md
index 26a116782..1691f1792 100644
--- a/docs/maintainers/vcpkg_execute_required_process.md
+++ b/docs/maintainers/vcpkg_execute_required_process.md
@@ -8,6 +8,9 @@ vcpkg_execute_required_process(
COMMAND <${PERL}> [<arguments>...]
WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg>
LOGNAME <build-${TARGET_TRIPLET}-dbg>
+ [TIMEOUT <seconds>]
+ [OUTPUT_VARIABLE <var>]
+ [ERROR_VARIABLE <var>]
)
```
## Parameters
@@ -24,6 +27,15 @@ The directory to execute the command in.
### LOGNAME
The prefix to use for the log files.
+### TIMEOUT
+Optional timeout after which to terminate the command.
+
+### OUTPUT_VARIABLE
+Optional variable to receive stdout of the command.
+
+### ERROR_VARIABLE
+Optional variable to receive stderr of the command.
+
This should be a unique name for different triplets so that the logs don't conflict when building multiple at once.
## Examples
diff --git a/docs/maintainers/vcpkg_find_acquire_program.md b/docs/maintainers/vcpkg_find_acquire_program.md
index ae83ccb92..aef499b12 100644
--- a/docs/maintainers/vcpkg_find_acquire_program.md
+++ b/docs/maintainers/vcpkg_find_acquire_program.md
@@ -34,6 +34,7 @@ The current list of programs includes:
- NINJA
- NUGET
- SCONS
+- SWIG
- YASM
Note that msys2 has a dedicated helper function: [`vcpkg_acquire_msys`](vcpkg_acquire_msys.md).
diff --git a/docs/maintainers/vcpkg_find_fortran.md b/docs/maintainers/vcpkg_find_fortran.md
new file mode 100644
index 000000000..eb04ebdf3
--- /dev/null
+++ b/docs/maintainers/vcpkg_find_fortran.md
@@ -0,0 +1,14 @@
+# vcpkg_find_fortran
+
+Checks if a Fortran compiler can be found.
+Windows(x86/x64) Only: If not it will switch/enable MinGW gfortran
+ and return required cmake args for building.
+
+## Usage
+```cmake
+vcpkg_find_fortran(<additional_cmake_args_out>
+)
+```
+
+## Source
+[scripts/cmake/vcpkg_find_fortran.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_find_fortran.cmake)
diff --git a/docs/maintainers/vcpkg_fixup_pkgconfig.md b/docs/maintainers/vcpkg_fixup_pkgconfig.md
index 25c6aae5d..be77ae347 100644
--- a/docs/maintainers/vcpkg_fixup_pkgconfig.md
+++ b/docs/maintainers/vcpkg_fixup_pkgconfig.md
@@ -8,6 +8,8 @@ vcpkg_fixup_pkgconfig(
[RELEASE_FILES <PATHS>...]
[DEBUG_FILES <PATHS>...]
[SYSTEM_LIBRARIES <NAMES>...]
+ [IGNORE_FLAGS <FLAGS>]
+ [SKIP_CHECK]
)
```
@@ -20,10 +22,6 @@ Defaults to every *.pc file in the folder ${CURRENT_PACKAGES_DIR} without ${CURR
Specifies a list of files to apply the fixes for debug paths.
Defaults to every *.pc file in the folder ${CURRENT_PACKAGES_DIR}/debug/
-### SYSTEM_PACKAGES
-If the *.pc file contains system packages outside vcpkg these need to be listed here.
-Since vcpkg checks the existence of all required packages within vcpkg.
-
### SYSTEM_LIBRARIES
If the *.pc file contains system libraries outside vcpkg these need to be listed here.
VCPKG checks every -l flag for the existence of the required library within vcpkg.
@@ -31,11 +29,13 @@ VCPKG checks every -l flag for the existence of the required library within vcpk
### IGNORE_FLAGS
If the *.pc file contains flags in the lib field which are not libraries. These can be listed here
+### SKIP_CHECK
+Skips the library checks in vcpkg_fixup_pkgconfig. Only use if the script itself has unhandled cases.
+
## Notes
Still work in progress. If there are more cases which can be handled here feel free to add them
## Examples
-
Just call vcpkg_fixup_pkgconfig() after any install step which installs *.pc files.
## Source
diff --git a/docs/maintainers/vcpkg_from_github.md b/docs/maintainers/vcpkg_from_github.md
index 18ab5b976..64ff2b195 100644
--- a/docs/maintainers/vcpkg_from_github.md
+++ b/docs/maintainers/vcpkg_from_github.md
@@ -55,6 +55,9 @@ This field should contain the scheme, host, and port of the desired URL without
### AUTHORIZATION_TOKEN
A token to be passed via the Authorization HTTP header as "token ${AUTHORIZATION_TOKEN}".
+### FILE_DISAMBIGUATOR
+A token to uniquely identify the resulting filename if the SHA512 changes even though a git ref does not, to avoid stepping on the same file name.
+
## Notes:
At least one of `REF` and `HEAD_REF` must be specified, however it is preferable for both to be present.
diff --git a/docs/maintainers/vcpkg_install_nmake.md b/docs/maintainers/vcpkg_install_nmake.md
index e83b05ff7..b1ff83ef8 100644
--- a/docs/maintainers/vcpkg_install_nmake.md
+++ b/docs/maintainers/vcpkg_install_nmake.md
@@ -7,6 +7,7 @@ Build and install a msvc makefile project.
vcpkg_install_nmake(
SOURCE_PATH <${SOURCE_PATH}>
[NO_DEBUG]
+ [TARGET <all>]
PROJECT_SUBPATH <${SUBPATH}>
PROJECT_NAME <${MAKEFILE_NAME}>
[PRERUN_SHELL <${SHELL_PATH}>]
diff --git a/docs/maintainers/vcpkg_internal_get_cmake_vars.md b/docs/maintainers/vcpkg_internal_get_cmake_vars.md
new file mode 100644
index 000000000..e2adfad74
--- /dev/null
+++ b/docs/maintainers/vcpkg_internal_get_cmake_vars.md
@@ -0,0 +1,29 @@
+# vcpkg_internal_get_cmake_vars
+
+**Only for internal use in vcpkg helpers. Behavior and arguments will change without notice.**
+Runs a cmake configure with a dummy project to extract certain cmake variables
+
+## Usage
+```cmake
+vcpkg_internal_get_cmake_vars(
+ [OUTPUT_FILE <output_file_with_vars>]
+ [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
+)
+```
+
+## Parameters
+### OPTIONS
+Additional options to pass to the test configure call
+
+### OUTPUT_FILE
+Variable to return the path to the generated cmake file with the detected `CMAKE_` variables set as `VCKPG_DETECTED_`
+
+## Notes
+If possible avoid usage in portfiles.
+
+## Examples
+
+* [vcpkg_configure_make](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_configure_make.cmake)
+
+## Source
+[scripts/cmake/vcpkg_internal_get_cmake_vars.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_internal_get_cmake_vars.cmake)
diff --git a/ports/gdal/0001-Fix-debug-crt-flags.patch b/ports/gdal/0001-Fix-debug-crt-flags.patch
index 266fc4355..1580051f5 100644
--- a/ports/gdal/0001-Fix-debug-crt-flags.patch
+++ b/ports/gdal/0001-Fix-debug-crt-flags.patch
@@ -1,6 +1,10 @@
---- a/nmake.opt Fri Dec 14 22:34:20 2018
-+++ b/nmake.opt Wed Mar 27 11:00:00 2019
-@@ -133,7 +133,17 @@
+diff --git a/nmake.opt b/nmake.opt
+index 88e197c..308eddd 100644
+--- a/nmake.opt
++++ b/nmake.opt
+@@ -147,11 +147,21 @@ CXX_PDB_FLAGS=/Zi /Fd$(GDAL_PDB)
+ CXX_PDB_FLAGS=
+ !ENDIF
+# 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
@@ -14,9 +18,11 @@
+
!IFNDEF OPTFLAGS
!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
+-OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP$(CPU_COUNT) /MD /EHsc /Ox /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG
++OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP$(CPU_COUNT) $(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
+-OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP$(CPU_COUNT) /MDd /EHsc /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG
++OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP$(CPU_COUNT) $(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-build.patch b/ports/gdal/0002-Fix-build.patch
new file mode 100644
index 000000000..13fa32562
--- /dev/null
+++ b/ports/gdal/0002-Fix-build.patch
@@ -0,0 +1,38 @@
+diff --git a/makefile.vc b/makefile.vc
+index 9e0bd44..8559f79 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -84,7 +84,7 @@ staticlib: $(LIB_DEPENDS)
+ call <<clean_main_build_output.bat
+ $(CLEAN_MAIN_BUILD_OUTPUT_CMDS)
+ <<
+- lib /nologo /out:$(GDAL_LIB_NAME) $(LIBOBJ) $(EXTERNAL_LIBS)
++ lib /nologo /LTCG /out:$(GDAL_LIB_NAME) $(LIBOBJ) $(EXTERNAL_LIBS)
+
+ appslib-target:
+ cd apps
+@@ -204,9 +204,6 @@ dll: $(GDAL_DLL)
+
+ # build using cygwin
+ docs:
+-!IFDEF HTMLDIR
+- make PYTHONHOME= -C doc html
+-!ENDIF
+
+ bindings:
+ -for %d in ( $(BINDINGS) ) do \
+@@ -236,12 +233,8 @@ install: default docs
+ cd ..\apps
+ $(MAKE) /f makefile.vc install
+ cd ..
+- $(INSTALL) data\*.* $(DATADIR)
+- $(INSTALL) LICENSE.TXT $(DATADIR)
+-!IFDEF HTMLDIR
+- -mkdir $(HTMLDIR)
+- xcopy /S /Y doc\build\html $(HTMLDIR)
+-!ENDIF
++ $(INSTALL) data\*.* "$(DATADIR)"
++ $(INSTALL) LICENSE.TXT "$(DATADIR)"
+ !IFDEF INCLUDE_OGR_FRMTS
+ cd ogr\ogrsf_frmts
+ $(MAKE) /f makefile.vc plugins-install
diff --git a/ports/gdal/0002-Fix-static-build.patch b/ports/gdal/0002-Fix-static-build.patch
deleted file mode 100644
index d440ceff8..000000000
--- a/ports/gdal/0002-Fix-static-build.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- 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/0003-Fix-static-build.patch b/ports/gdal/0003-Fix-static-build.patch
new file mode 100644
index 000000000..42f76d205
--- /dev/null
+++ b/ports/gdal/0003-Fix-static-build.patch
@@ -0,0 +1,22 @@
+diff --git a/makefile.vc b/makefile.vc
+index 8559f79..87f8fc9 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -61,7 +61,7 @@ TARGET_LIB = staticlib
+
+ DEFAULT_TARGETS =
+
+-default: $(TARGET_LIB) $(PLUGIN_TARGET) apps_dir
++default: $(TARGET_LIB) $(PLUGIN_TARGET)
+
+ # Batch commands to clean main build output are stored in a macro so they can be reused by different
+ # targets in an inline temporary batch file.
+@@ -230,8 +230,6 @@ install: default docs
+ if exist $(GDAL_DLL) $(INSTALL) $(GDAL_DLL) $(BINDIR)
+ cd frmts
+ $(MAKE) /f makefile.vc plugins-install
+- cd ..\apps
+- $(MAKE) /f makefile.vc install
+ cd ..
+ $(INSTALL) data\*.* "$(DATADIR)"
+ $(INSTALL) LICENSE.TXT "$(DATADIR)"
diff --git a/ports/gdal/0003-Fix-std-fabs.patch b/ports/gdal/0003-Fix-std-fabs.patch
deleted file mode 100644
index 4a6ba7cb3..000000000
--- a/ports/gdal/0003-Fix-std-fabs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/ogrlinestring.cpp Fri Dec 14 22:34:20 2018
-+++ b/ogrlinestring.cpp Wed Mar 27 11:00:00 2019
-@@ -34,6 +34,7 @@
- #include <cstdlib>
- #include <algorithm>
- #include <limits>
-+#include <cmath>
-
- CPL_CVSID("$Id: ogrlinestring.cpp 61153d33d7f055c3442ff728adbfa8e09582464b 2019-03-10 14:23:51 +0100 Even Rouault $")
-
diff --git a/ports/gdal/0004-Fix-std-fabs.patch b/ports/gdal/0004-Fix-std-fabs.patch
new file mode 100644
index 000000000..08fb21ce7
--- /dev/null
+++ b/ports/gdal/0004-Fix-std-fabs.patch
@@ -0,0 +1,12 @@
+diff --git a/ogr/ogrlinestring.cpp b/ogr/ogrlinestring.cpp
+index 1e16d9f..cf7ced1 100644
+--- a/ogr/ogrlinestring.cpp
++++ b/ogr/ogrlinestring.cpp
+@@ -35,6 +35,7 @@
+ #include <cstdlib>
+ #include <algorithm>
+ #include <limits>
++#include <cmath>
+
+ CPL_CVSID("$Id: ogrlinestring.cpp ad9178b63f501e9840d86a3220c9e5100c6e3fa2 2019-10-21 13:19:06 +0200 Even Rouault $")
+
diff --git a/ports/gdal/0005-Fix-cfitsio.patch b/ports/gdal/0005-Fix-cfitsio.patch
new file mode 100644
index 000000000..5e3814a3d
--- /dev/null
+++ b/ports/gdal/0005-Fix-cfitsio.patch
@@ -0,0 +1,13 @@
+diff --git a/frmts/fits/fitsdataset.cpp b/frmts/fits/fitsdataset.cpp
+index 4f41a12..723d211 100644
+--- a/frmts/fits/fitsdataset.cpp
++++ b/frmts/fits/fitsdataset.cpp
+@@ -34,7 +34,7 @@
+ #include "ogr_spatialref.h"
+
+ #include <string.h>
+-#include <fitsio.h>
++#include <cfitsio/fitsio.h>
+
+ #include <string>
+ #include <cstring>
diff --git a/ports/gdal/CONTROL b/ports/gdal/CONTROL
index 89bf2d2af..00177bc06 100644
--- a/ports/gdal/CONTROL
+++ b/ports/gdal/CONTROL
@@ -1,9 +1,8 @@
Source: gdal
-Version: 2.4.1
-Port-Version: 14
+Version: 3.1.3
Homepage: https://gdal.org/
Description: The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data.
-Build-Depends: proj4, libpng, geos, sqlite3, curl, expat, libpq, openjpeg, libwebp, libxml2, liblzma, netcdf-c, hdf5, zlib
+Build-Depends: proj4, libpng, geos, sqlite3, curl, expat, libpq, openjpeg, libwebp, libxml2, liblzma, netcdf-c, hdf5, zlib, libgeotiff, cfitsio, json-c (!windows)
Supports: !arm
Feature: mysql-libmariadb
diff --git a/ports/gdal/dependency_win.cmake b/ports/gdal/dependency_win.cmake
new file mode 100644
index 000000000..0d9dfa533
--- /dev/null
+++ b/ports/gdal/dependency_win.cmake
@@ -0,0 +1,120 @@
+macro(find_dependency_win)
+ # Setup proj4 libraries + include path
+ set(PROJ_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include")
+ set(PROJ_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/proj.lib")
+ set(PROJ_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/proj_d.lib")
+
+ # Setup libpng libraries + include path
+ set(PNG_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include")
+ set(PNG_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libpng16.lib" )
+ set(PNG_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" )
+
+ # Setup zlib libraries + include path
+ set(ZLIB_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(ZLIB_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/zlib.lib" )
+ set(ZLIB_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib" )
+
+ # Setup geos libraries + include path
+ set(GEOS_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(GEOS_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib" )
+ set(GEOS_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib" )
+
+ # Setup expat libraries + include path
+ set(EXPAT_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(EXPAT_SUFFIX "MT")
+ else()
+ set(EXPAT_SUFFIX "MD")
+ endif()
+ set(EXPAT_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libexpat${EXPAT_SUFFIX}.lib" )
+ set(EXPAT_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libexpatd${EXPAT_SUFFIX}.lib" )
+ else()
+ set(EXPAT_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libexpat.lib" )
+ set(EXPAT_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libexpatd.lib" )
+ endif()
+
+ # Setup curl libraries + include path
+ set(CURL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib")
+ set(CURL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib" )
+ elseif(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib")
+ set(CURL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib" )
+ endif()
+ if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d.lib")
+ set(CURL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d.lib" )
+ elseif(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib")
+ set(CURL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib" )
+ endif()
+
+ # Setup sqlite3 libraries + include path
+ set(SQLITE_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(SQLITE_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib" )
+ set(SQLITE_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib" )
+
+ # Setup PostgreSQL libraries + include path
+ set(PGSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(PGSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libpq.lib" )
+ set(PGSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpq.lib" )
+
+ set(TMP_REL "${CURRENT_INSTALLED_DIR}/lib/libpgcommon.lib" )
+ set(TMP_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpgcommon.lib" )
+ set(PGSQL_LIBRARY_REL "${PGSQL_LIBRARY_REL} ${TMP_REL}")
+ set(PGSQL_LIBRARY_DBG "${PGSQL_LIBRARY_DBG} ${TMP_DBG}")
+
+ set(TMP_REL "${CURRENT_INSTALLED_DIR}/lib/libpgport.lib" )
+ set(TMP_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpgport.lib" )
+ set(PGSQL_LIBRARY_REL "${PGSQL_LIBRARY_REL} ${TMP_REL}")
+ set(PGSQL_LIBRARY_DBG "${PGSQL_LIBRARY_DBG} ${TMP_DBG}")
+
+ # Setup OpenJPEG libraries + include path
+ set(OPENJPEG_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(OPENJPEG_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/openjp2.lib" )
+ set(OPENJPEG_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/openjp2.lib" )
+
+ # Setup WebP libraries + include path
+ set(WEBP_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(WEBP_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/webp.lib" )
+ set(WEBP_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/webpd.lib" )
+
+ # Setup libxml2 libraries + include path
+ set(XML2_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(XML2_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib" )
+ set(XML2_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib" )
+
+ # Setup liblzma libraries + include path
+ set(LZMA_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
+ set(LZMA_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/lzma.lib" )
+ set(LZMA_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/lzmad.lib" )
+
+ # Setup openssl libraries path
+ set(OPENSSL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libcrypto.lib ${CURRENT_INSTALLED_DIR}/lib/libssl.lib" )
+ set(OPENSSL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.lib" )
+
+ # Setup libiconv libraries path
+ set(ICONV_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/lib/charset.lib" )
+ set(ICONV_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/debug/lib/charset.lib" )
+
+ if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES)
+ # Setup MySQL libraries + include path
+ if("mysql-libmysql" IN_LIST FEATURES)
+ set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql" )
+ set(MYSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" )
+ set(MYSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" )
+ endif()
+
+ if("mysql-libmariadb" IN_LIST FEATURES)
+ set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql" )
+ set(MYSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib" )
+ set(MYSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib" )
+ endif()
+ endif()
+
+ if ("libspatialite" IN_LIST FEATURES)
+ # Setup spatialite libraries + include path
+ set(SPATIALITE_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/spatialite" )
+ set(SPATIALITE_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/spatialite.lib" )
+ set(SPATIALITE_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/spatialite.lib" )
+ set(HAVE_SPATIALITE "-DHAVE_SPATIALITE")
+ endif()
+endmacro() \ No newline at end of file
diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake
index 8c3650629..8675d8ced 100644
--- a/ports/gdal/portfile.cmake
+++ b/ports/gdal/portfile.cmake
@@ -1,186 +1,45 @@
-# NOTE: update the version and checksum for new GDAL release
-set(GDAL_VERSION_STR "2.4.1")
-set(GDAL_VERSION_PKG "241")
-set(GDAL_VERSION_LIB "204")
-set(GDAL_PACKAGE_SUM "edb9679ee6788334cf18971c803615ac9b1c72bc0c96af8fd4852cb7e8f58e9c4f3d9cb66406bc8654419612e1a7e9d0e62f361712215f4a50120f646bb0a738")
+include(${CMAKE_CURRENT_LIST_DIR}/dependency_win.cmake)
+#include(${CMAKE_CURRENT_LIST_DIR}/dependency_unix.cmake)
vcpkg_fail_port_install(ON_ARCH "arm")
+# NOTE: update the version and checksum for new GDAL release
+set(GDAL_VERSION_STR "3.1.3")
+set(GDAL_VERSION_PKG "313")
+set(GDAL_VERSION_LIB "204")
+set(GDAL_PACKAGE_SUM "a6dad37813eecb5e0c888ec940cf7f83c5096e69e4f33a3e5a5557542e7f656b9726e470e1b5d3d035de53df065510931a436a8c889f1366abd630c1cf5dfb49")
+
vcpkg_download_distfile(ARCHIVE
URLS "http://download.osgeo.org/gdal/${GDAL_VERSION_STR}/gdal${GDAL_VERSION_PKG}.zip"
FILENAME "gdal${GDAL_VERSION_PKG}.zip"
SHA512 ${GDAL_PACKAGE_SUM}
)
-# Extract source into architecture specific directory, because GDALs' nmake based build currently does not
-# support out of source builds.
-set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/gdal-${GDAL_VERSION_STR})
-set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/gdal-${GDAL_VERSION_STR})
-
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- list(APPEND BUILD_TYPES "release")
-endif()
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- list(APPEND BUILD_TYPES "debug")
+set(GDAL_PATCHES 0001-Fix-debug-crt-flags.patch 0002-Fix-build.patch)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ list(APPEND GDAL_PATCHES 0003-Fix-static-build.patch)
endif()
+list(APPEND GDAL_PATCHES 0004-Fix-std-fabs.patch 0005-Fix-cfitsio.patch)
-foreach(BUILD_TYPE IN LISTS BUILD_TYPES)
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE})
- vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE})
- if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-${GDAL_VERSION_STR}
- PATCHES
- 0001-Fix-debug-crt-flags.patch
- 0002-Fix-static-build.patch
- )
- else()
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-${GDAL_VERSION_STR}
- PATCHES
- 0001-Fix-debug-crt-flags.patch
- )
- endif()
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-${GDAL_VERSION_STR}/ogr
- PATCHES
- 0003-Fix-std-fabs.patch
- )
-endforeach()
-
-if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
- # 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/proj_d.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/geos_c.lib ${CURRENT_INSTALLED_DIR}/lib/geos.lib" GEOS_LIBRARY_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib ${CURRENT_INSTALLED_DIR}/debug/lib/geosd.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)
- if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libexpatMD.lib" EXPAT_LIBRARY_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libexpatdMD.lib" EXPAT_LIBRARY_DBG)
- else()
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libexpat.lib" EXPAT_LIBRARY_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libexpatd.lib" EXPAT_LIBRARY_DBG)
- endif()
-
- # Setup curl libraries + include path
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CURL_INCLUDE_DIR)
- if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib")
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib" CURL_LIBRARY_REL)
- elseif(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib")
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib" CURL_LIBRARY_REL)
- endif()
- if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d.lib")
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d.lib" CURL_LIBRARY_DBG)
- elseif(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib")
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib" CURL_LIBRARY_DBG)
- endif()
-
- # 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/libpq.lib" PGSQL_LIBRARY_DBG)
-
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpgcommon.lib" TMP_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpgcommon.lib" TMP_DBG)
- set(PGSQL_LIBRARY_REL "${PGSQL_LIBRARY_REL} ${TMP_REL}")
- set(PGSQL_LIBRARY_DBG "${PGSQL_LIBRARY_DBG} ${TMP_DBG}")
-
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpgport.lib" TMP_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpgport.lib" TMP_DBG)
- set(PGSQL_LIBRARY_REL "${PGSQL_LIBRARY_REL} ${TMP_REL}")
- set(PGSQL_LIBRARY_DBG "${PGSQL_LIBRARY_DBG} ${TMP_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/lzmad.lib" LZMA_LIBRARY_DBG)
+vcpkg_extract_source_archive_ex(
+ ARCHIVE ${ARCHIVE}
+ OUT_SOURCE_PATH SOURCE_PATH
+ PATCHES ${GDAL_PATCHES}
+)
- # Setup openssl libraries path
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcrypto.lib ${CURRENT_INSTALLED_DIR}/lib/libssl.lib" OPENSSL_LIBRARY_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.lib" OPENSSL_LIBRARY_DBG)
+if (VCPKG_TARGET_IS_WINDOWS)
+ set(NATIVE_DATA_DIR "${CURRENT_PACKAGES_DIR}/share/gdal")
+ set(NATIVE_HTML_DIR "${CURRENT_PACKAGES_DIR}/share/gdal/html")
- # Setup libiconv libraries path
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/lib/charset.lib" ICONV_LIBRARY_REL)
- file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/debug/lib/charset.lib" ICONV_LIBRARY_DBG)
+ find_dependency_win()
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}
@@ -227,6 +86,7 @@ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
list(APPEND NMAKE_OPTIONS_REL
${NMAKE_OPTIONS}
+ GDAL_HOME=${CURRENT_PACKAGES_DIR}
CXX_CRT_FLAGS=${LINKAGE_FLAGS}
PROJ_LIBRARY=${PROJ_LIBRARY_REL}
PNG_LIB=${PNG_LIBRARY_REL}
@@ -243,6 +103,7 @@ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
list(APPEND NMAKE_OPTIONS_DBG
${NMAKE_OPTIONS}
+ GDAL_HOME=${CURRENT_PACKAGES_DIR}/debug
CXX_CRT_FLAGS="${LINKAGE_FLAGS}d"
PROJ_LIBRARY=${PROJ_LIBRARY_DBG}
PNG_LIB=${PNG_LIBRARY_DBG}
@@ -259,175 +120,94 @@ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
)
# 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}")
+ vcpkg_install_nmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ TARGET devinstall
+ OPTIONS_RELEASE
+ "${NMAKE_OPTIONS_REL}"
+ OPTIONS_DEBUG
+ "${NMAKE_OPTIONS_DBG}"
+ )
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)
-
- 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()
-
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ list(APPEND GDAL_EXES
+ gdal_contour
+ gdal_grid
+ gdal_rasterize
+ gdal_translate
+ gdal_viewshed
+ gdaladdo
+ gdalbuildvrt
+ gdaldem
+ gdalenhance
+ gdalinfo
+ gdallocationinfo
+ gdalmanage
+ gdalmdiminfo
+ gdalmdimtranslate
+ gdalserver
+ gdalsrsinfo
+ gdaltindex
+ gdaltransform
+ gdalwarp
+ gnmanalyse
+ gnmmanage
+ nearblack
+ ogr2ogr
+ ogrinfo
+ ogrlineref
+ ogrtindex
+ testepsg
+ )
+ vcpkg_copy_tools(TOOL_NAMES ${GDAL_EXES} AUTO_CLEAN)
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()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/share/gdal/html)
- # Copy over PDBs
vcpkg_copy_pdbs()
if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal204.pdb)
endif()
-elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") # Build in UNIX
- # Check build system first
- find_program(MAKE make)
- if (NOT MAKE)
- message(FATAL_ERROR "MAKE not found")
- endif()
-
- set(ENV{CFLAGS} "$ENV{CFLAGS} -Wno-error=implicit-function-declaration")
-
- if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- ################
- # 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_build_process(
- COMMAND make -j ${VCPKG_CONCURRENCY}
- NO_PARALLEL_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")
- ################
- # 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_build_process(
- COMMAND make -j ${VCPKG_CONCURRENCY}
- NO_PARALLEL_COMMAND make
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME make-build-${TARGET_TRIPLET}-debug
+else()
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(BUILD_DYNAMIC yes)
+ set(BUILD_STATIC no)
+ else()
+ set(BUILD_DYNAMIC no)
+ set(BUILD_STATIC yes)
+ endif()
+
+ set(CONF_OPTS --enable-shared=${BUILD_DYNAMIC} --enable-static=${BUILD_STATIC})
+ list(APPEND CONF_OPTS --with-proj=${CURRENT_INSTALLED_DIR} --with-libjson-c=${CURRENT_INSTALLED_DIR})
+
+ vcpkg_configure_make(
+ SOURCE_PATH ${SOURCE_PATH}
+ AUTOCONFIG
+ COPY_SOURCE
+ OPTIONS ${CONF_OPTS}
+ OPTIONS_DEBUG
+ --enable-debug
+ --without-fit # Disable cfitsio temporary
)
-
- 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
+
+ vcpkg_install_make(MAKEFILE GNUmakefile)
+
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/lib/gdalplugins
+ ${CURRENT_PACKAGES_DIR}/debug/lib/gdalplugins
+ ${CURRENT_PACKAGES_DIR}/debug/share
)
-
- 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()
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake ${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake @ONLY)
# Handle copyright
-configure_file(${SOURCE_PATH_RELEASE}/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+file(INSTALL ${SOURCE_PATH}/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/gdal/usage b/ports/gdal/usage
index 2ee0072ac..63a67bc07 100644
--- a/ports/gdal/usage
+++ b/ports/gdal/usage
@@ -1,5 +1,5 @@
The package GDAL provides CMake targets:
find_package(GDAL REQUIRED)
- target_include_directories(main PRIVATE ${GDAL_INCLUDE_DIR})
- target_link_libraries(main PRIVATE ${GDAL_LIBRARY}) \ No newline at end of file
+ target_include_directories(main PRIVATE ${GDAL_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${GDAL_LIBRARIES})
diff --git a/ports/gdal/vcpkg-cmake-wrapper.cmake b/ports/gdal/vcpkg-cmake-wrapper.cmake
index 89550ddf8..30c3b5a66 100644
--- a/ports/gdal/vcpkg-cmake-wrapper.cmake
+++ b/ports/gdal/vcpkg-cmake-wrapper.cmake
@@ -3,10 +3,10 @@ include(SelectLibraryConfigurations)
find_path(GDAL_INCLUDE_DIR NAMES gdal.h HINTS ${CURRENT_INSTALLED_DIR})
-find_library(GDAL_LIBRARY_DEBUG NAMES gdal gdald NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH REQUIRED)
-find_library(GDAL_LIBRARY_RELEASE NAMES gdal NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH REQUIRED)
+find_library(GDAL_LIBRARY_DEBUG NAMES gdal_d gdal_i_d gdal NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH REQUIRED)
+find_library(GDAL_LIBRARY_RELEASE NAMES gdal_i gdal NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH REQUIRED)
select_library_configurations(GDAL)
-set(GDAL_INCLUDE_DIR ${GDAL_INCLUDE_DIR})
-set(GDAL_LIBRARY ${GDAL_LIBRARY})
+set(GDAL_INCLUDE_DIRS ${GDAL_INCLUDE_DIR})
+set(GDAL_LIBRARIES ${GDAL_LIBRARY})
diff --git a/ports/pdal/PDALConfig.patch b/ports/pdal/PDALConfig.patch
deleted file mode 100644
index 25e9bfcbe..000000000
--- a/ports/pdal/PDALConfig.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/PDALConfig.cmake.in b/PDALConfig.cmake.in
-index a03ef142e..2d06a2937 100644
---- a/PDALConfig.cmake.in
-+++ b/PDALConfig.cmake.in
-@@ -15,6 +15,9 @@ foreach(_dir @PDAL_CONFIG_LIBRARY_DIRS@)
- list(APPEND PDAL_LIBRARY_DIRS ${_foo})
- endforeach(_dir)
-
-+include(CMakeFindDependencyMacro)
-+find_dependency(GeoTIFF)
-+find_dependency(CURL)
- include("${CMAKE_CURRENT_LIST_DIR}/PDALTargets.cmake")
-
- if (WIN32)
diff --git a/ports/pdal/fix-dependency.patch b/ports/pdal/fix-dependency.patch
index f7351c950..352eb1d43 100644
--- a/ports/pdal/fix-dependency.patch
+++ b/ports/pdal/fix-dependency.patch
@@ -1,20 +1,19 @@
diff --git a/cmake/geos.cmake b/cmake/geos.cmake
-index 90b79d9..4e144a6 100644
+index 90b79d9..5942ee5 100644
--- a/cmake/geos.cmake
+++ b/cmake/geos.cmake
-@@ -1,7 +1,11 @@
+@@ -1,8 +1,5 @@
#
# GEOS (required)
#
-find_package(GEOS QUIET 3.3)
-+include(SelectLibraryConfigurations)
-+find_library(GEOS_LIBRARY_RELEASE NAMES geos_c libgeos_c)
-+find_library(GEOS_LIBRARY_DEBUG NAMES geos_cd libgeos_cd)
-+select_library_configurations(GEOS)
-+find_path(GEOS_INCLUDE_DIR geos_c.h)
- set_package_properties(GEOS PROPERTIES TYPE REQUIRED
- PURPOSE "Provides general purpose geometry support")
-
+-set_package_properties(GEOS PROPERTIES TYPE REQUIRED
+- PURPOSE "Provides general purpose geometry support")
+-
+-include_directories("${GEOS_INCLUDE_DIR}")
++find_package(geos CONFIG REQUIRED)
++set(GEOS_LIBRARY GEOS::geos GEOS::geos_c GEOS::geos_cxx_flags)
+\ No newline at end of file
diff --git a/cmake/modules/FindPostgreSQL.cmake b/cmake/modules/FindPostgreSQL.cmake
index 8178418..31b54d6 100644
--- a/cmake/modules/FindPostgreSQL.cmake
@@ -46,14 +45,18 @@ index 42cca1e..43b0ced 100644
add_subdirectory(vendor/kazhdan)
if (NOT PDAL_HAVE_JSONCPP)
diff --git a/PDALConfig.cmake.in b/PDALConfig.cmake.in
-index ea695cf..21b66a1 100644
+index a03ef14..9d073e6 100644
--- a/PDALConfig.cmake.in
+++ b/PDALConfig.cmake.in
-@@ -18,6 +18,7 @@ endforeach(_dir)
- include(CMakeFindDependencyMacro)
- find_dependency(GeoTIFF)
- find_dependency(CURL)
+@@ -15,6 +15,11 @@ foreach(_dir @PDAL_CONFIG_LIBRARY_DIRS@)
+ list(APPEND PDAL_LIBRARY_DIRS ${_foo})
+ endforeach(_dir)
+
++include(CMakeFindDependencyMacro)
++find_dependency(GeoTIFF)
++find_dependency(CURL)
+find_dependency(Boost COMPONENTS system filesystem)
++find_dependency(geos CONFIG)
include("${CMAKE_CURRENT_LIST_DIR}/PDALTargets.cmake")
if (WIN32)
diff --git a/ports/pdal/portfile.cmake b/ports/pdal/portfile.cmake
index b6c503d16..8099bed6f 100644
--- a/ports/pdal/portfile.cmake
+++ b/ports/pdal/portfile.cmake
@@ -13,7 +13,6 @@ vcpkg_extract_source_archive_ex(
0001-win32_compiler_options.cmake.patch
0002-no-source-dir-writes.patch
0003-fix-copy-vendor.patch
- PDALConfig.patch
fix-dependency.patch
libpq.patch
fix-CPL_DLL.patch
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 <target>]
## [ADD_BIN_TO_PATH]
## [ENABLE_INSTALL])
+## [MAKEFILE <makefileName>]
## [LOGFILE_ROOT <logfileroot>])
## ```
##
@@ -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 <target>`). 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 <all>]
## [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 <all>]
## 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}