diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/buildsystems/vcpkg.cmake | 2 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 89 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_common_definitions.cmake | 21 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_configure_cmake.cmake | 8 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_find_acquire_program.cmake | 44 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_fixup_cmake_targets.cmake | 2 | ||||
| -rw-r--r-- | scripts/get_triplet_environment.cmake | 16 | ||||
| -rw-r--r-- | scripts/ports.cmake | 13 | ||||
| -rw-r--r-- | scripts/templates/portfile.in.cmake | 7 | ||||
| -rw-r--r-- | scripts/toolchains/mingw.cmake | 40 | ||||
| -rw-r--r-- | scripts/vcpkg_get_dep_info.cmake | 19 | ||||
| -rw-r--r-- | scripts/vcpkg_get_tags.cmake | 28 |
12 files changed, 204 insertions, 85 deletions
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index e549f3fa1..5b596cba2 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -67,7 +67,7 @@ else() elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 16 2019$") - set(_VCPKG_TARGET_TRIPLET_ARCH x86) + set(_VCPKG_TARGET_TRIPLET_ARCH x64) else() find_program(_VCPKG_CL cl) if(_VCPKG_CL MATCHES "amd64/cl.exe$" OR _VCPKG_CL MATCHES "x64/cl.exe$") diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index ab88ed6f6..392414ff5 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -88,9 +88,13 @@ argtable2:x64-uwp=fail arrow:arm64-windows=fail
arrow:x64-linux=fail
arrow:x86-windows=fail
+asiosdk:x64-linux=fail
+asiosdk:x64-osx=fail
+asiosdk:x64-uwp=fail
+asiosdk:arm64-windows=fail
+asiosdk:arm-uwp=fail
asmjit:arm64-windows=fail
asmjit:arm-uwp=fail
-asmjit:x64-uwp=fail
asyncplusplus:arm-uwp=fail
asyncplusplus:x64-uwp=fail
atk:x64-osx=fail
@@ -113,6 +117,7 @@ aws-lambda-cpp:x64-uwp=fail aws-lambda-cpp:x64-windows=fail
aws-lambda-cpp:x64-windows-static=fail
aws-lambda-cpp:x86-windows=fail
+aws-lambda-cpp:x64-osx=fail
aws-sdk-cpp:x64-linux=ignore
azure-c-shared-utility:arm-uwp=fail
azure-c-shared-utility:x64-uwp=fail
@@ -219,6 +224,9 @@ chakracore:x64-linux=fail chakracore:x64-osx=fail
chakracore:x64-uwp=fail
chakracore:x64-windows-static=fail
+# DCMTK currently has a vendored copy of libcharls.a, which causes conflicts with charls (TODO: use charls' copy)
+charls:x64-linux=skip
+charls:x64-osx=skip
chartdir:arm64-windows=fail
chartdir:arm-uwp=fail
chartdir:x64-uwp=fail
@@ -274,8 +282,6 @@ cppfs:x64-uwp=fail cppgraphqlgen:arm-uwp=fail
cppgraphqlgen:x64-uwp=ignore
cppkafka:x64-linux=ignore
-cppmicroservices:x86-windows=fail
-cppmicroservices:x64-windows=fail
cppmicroservices:arm64-windows=fail
cppmicroservices:arm-uwp=fail
cppmicroservices:x64-uwp=fail
@@ -295,8 +301,6 @@ cpuinfo:arm64-windows=ignore crfsuite:arm-uwp=fail
crfsuite:x64-uwp=fail
crossguid:x64-osx=fail
-cryptopp:arm64-windows=fail
-cryptopp:arm-uwp=fail
cspice:arm-uwp=fail
cspice:x64-uwp=fail
ctemplate:arm64-windows=fail
@@ -374,7 +378,6 @@ dxut:arm-uwp=fail dxut:x64-linux=fail
dxut:x64-osx=fail
dxut:x64-windows-static=fail
-eastl:arm64-windows=fail
eastl:arm-uwp=fail
easyhook:arm64-windows=fail
easyhook:arm-uwp=fail
@@ -384,6 +387,10 @@ easyhook:x64-uwp=fail easyhook:x64-windows-static=fail
easyloggingpp:arm-uwp=fail
easyloggingpp:x64-uwp=fail
+eathread:arm64-windows=fail
+eathread:arm-uwp=fail
+eathread:x64-uwp=fail
+eathread:x86-windows=fail
ebml:arm-uwp=fail
ebml:x64-uwp=fail
ecm:arm64-windows = skip
@@ -468,7 +475,6 @@ freeglut:arm64-windows=fail freeglut:arm-uwp=fail
freeglut:x64-uwp=fail
freeglut:x64-osx=fail
-freeimage:x64-osx=fail
freerdp:arm64-windows=fail
freerdp:arm-uwp=fail
freerdp:x64-osx=fail
@@ -490,8 +496,6 @@ fribidi:arm-uwp=fail fribidi:x64-linux=fail
fribidi:x64-osx=fail
fribidi:x64-uwp=fail
-ftgl:x64-linux=fail
-ftgl:x64-osx=fail
ftgl:x64-uwp=fail
fuzzylite:arm-uwp=fail
fuzzylite:x64-linux=fail
@@ -654,7 +658,6 @@ jemalloc:x64-uwp=fail jemalloc:x64-windows-static=fail
jinja2cpplight:arm-uwp=fail
jinja2cpplight:x64-uwp=fail
-jsonnet:x64-osx=fail
kd-soap:x64-linux=fail
kd-soap:x64-osx=fail
kd-soap:x64-windows-static=fail
@@ -677,6 +680,7 @@ lcm:x64-linux=fail lcm:x64-osx=fail
leptonica:x64-uwp=fail
leptonica:arm-uwp=fail
+leptonica:arm64-windows=fail
leveldb:arm-uwp=fail
leveldb:x64-uwp=fail
libaiff:x64-linux=fail
@@ -748,6 +752,12 @@ libgo:x64-osx=fail libgo:x64-windows=fail
libgo:x64-windows-static=fail
libgo:x86-windows=fail
+libgpod:arm64-windows=fail
+libgpod:arm-uwp=fail
+libgpod:x64-uwp=fail
+libgpod:x64-windows=fail
+libgpod:x64-windows-static=fail
+libgpod:x86-windows=fail
libhydrogen:arm64-windows=fail
libics:arm-uwp=fail
libics:x64-uwp=fail
@@ -785,12 +795,15 @@ libmariadb:x64-uwp = skip libmariadb:x64-windows = skip
libmariadb:x64-windows-static = skip
libmariadb:x86-windows = skip
-libmesh:arm64-windows=fail
-libmesh:arm-uwp=fail
-libmesh:x64-uwp=fail
-libmesh:x64-windows=fail
-libmesh:x64-windows-static=fail
-libmesh:x86-windows=fail
+# libmesh installs tons of problematic files that conflict with other ports (boost, eigen, etc)
+libmesh:arm64-windows=skip
+libmesh:arm-uwp=skip
+libmesh:x64-uwp=skip
+libmesh:x64-windows=skip
+libmesh:x64-windows-static=skip
+libmesh:x86-windows=skip
+libmesh:x64-osx=skip
+libmesh:x64-linux=skip
libmicrohttpd:arm64-windows=fail
libmicrohttpd:arm-uwp=fail
libmicrohttpd:x64-linux=fail
@@ -911,7 +924,6 @@ libusb:arm-uwp=fail libusb:x64-linux=fail
libusb:x64-osx=fail
libusb:x64-uwp=fail
-libusbmuxd:arm64-windows=fail
libusbmuxd:arm-uwp=fail
libusbmuxd:x64-uwp=fail
libusbmuxd:x64-linux=fail
@@ -1020,6 +1032,10 @@ mecab:x64-uwp = skip mecab:x64-windows = skip
mecab:x64-windows-static = skip
mecab:x86-windows = skip
+memorymodule:arm-uwp=fail
+memorymodule:x64-linux=fail
+memorymodule:x64-osx=fail
+memorymodule:x64-uwp=fail
meschach:arm-uwp=fail
meschach:x64-linux=fail
meschach:x64-osx=fail
@@ -1053,11 +1069,18 @@ minizip:x64-uwp=fail mlpack:x64-linux=ignore
mman:x64-linux=fail
mman:x64-osx=fail
-mmx:x64-windows=ignore
-mmx:x64-windows-static=ignore
-mmx:x86-windows=ignore
+# mmx installs many problematic headers, such as `json.h` and `sched.h`
+mmx:x64-windows=skip
+mmx:x64-windows-static=skip
+mmx:x86-windows=skip
+mmx:x64-linux=skip
+mmx:x64-osx=skip
+mmx:arm-uwp=skip
+mmx:x64-uwp=skip
+mmx:arm64-windows=skip
mongo-c-driver:arm64-windows=fail
-mongo-c-driver:x64-osx=fail
+# Flaky strange linker error
+mongo-c-driver:x64-osx=skip
mongoose:arm-uwp=fail
mongoose:x64-uwp=fail
monkeys-audio:arm64-windows=fail
@@ -1065,8 +1088,7 @@ monkeys-audio:arm-uwp=fail monkeys-audio:x64-linux=fail
monkeys-audio:x64-osx=fail
monkeys-audio:x64-uwp=fail
-monkeys-audio:x64-windows=fail
-monkeys-audio:x86-windows=fail
+monkeys-audio:x64-windows-static=fail
moos-core:arm-uwp=fail
moos-core:x64-uwp=fail
moos-core:x64-windows=ignore
@@ -1180,6 +1202,7 @@ ogdf:x64-uwp = skip ogdf:x64-windows = skip
ogdf:x64-windows-static = skip
ogdf:x86-windows = skip
+ogre:x64-osx=fail
# Conflicts with ogre
ogre-next:arm64-windows = skip
ogre-next:arm-uwp = skip
@@ -1196,7 +1219,6 @@ ompl:x64-osx=fail ompl:x64-linux=ignore
open62541:arm-uwp=fail
open62541:x64-uwp=fail
-open62541:x64-osx=fail
openal-soft:arm-uwp=fail
openal-soft:x64-uwp=fail
openblas:arm64-windows=fail
@@ -1305,6 +1327,8 @@ pangomm:x64-windows=ignore pangomm:x86-windows=ignore
parmetis:x64-linux=fail
parmetis:x64-osx=fail
+pbc:arm-uwp=fail
+pbc:x64-uwp=fail
pcre2:arm-uwp=fail
pdal:x64-linux=fail
pdal:x64-osx=fail
@@ -1497,7 +1521,6 @@ rpclib:x86-windows=ignore rpclib:x64-windows-static=ignore
rttr:arm-uwp=fail
rttr:x64-uwp=fail
-scintilla:arm64-windows=fail
scintilla:arm-uwp=fail
scintilla:x64-linux=fail
scintilla:x64-osx=fail
@@ -1523,7 +1546,6 @@ sdformat6:x64-linux=ignore sdl1:arm-uwp=fail
sdl1:x64-uwp=fail
sdl1:x64-osx=fail
-sdl2-gfx:arm64-windows=fail
sdl2-gfx:x64-linux=fail
sdl2-gfx:x64-osx=fail
sdl2-image:arm-uwp=fail
@@ -1532,6 +1554,8 @@ sdl2-mixer:arm-uwp=fail sdl2-mixer:x64-uwp=fail
sdl2-net:arm-uwp=fail
sdl2-net:x64-uwp=fail
+seal:arm-uwp=fail +seal:x64-uwp=fail secp256k1:x64-linux=fail
secp256k1:x64-osx=fail
selene:x64-linux=ignore
@@ -1547,11 +1571,11 @@ sfgui:x64-linux=ignore sfml:arm64-windows=fail
shapelib:arm-uwp=fail
shapelib:x64-uwp=fail
-shiva:x64-windows=fail
shiva:x64-windows-static=fail
shiva-sfml:x64-linux=fail
shiva-sfml:x64-osx=fail
shiva-sfml:x86-windows=fail
+shiva-sfml:x64-windows=fail
shogun:arm64-windows = skip
shogun:arm-uwp = skip
shogun:x64-osx=fail
@@ -1614,9 +1638,6 @@ spirv-tools:arm-uwp=fail spirv-tools:x64-uwp=fail
stormlib:arm-uwp=fail
stormlib:x64-uwp=fail
-string-theory:arm-uwp=fail
-string-theory:x64-uwp=fail
-string-theory:x64-windows=ignore
stxxl:arm-uwp=fail
stxxl:x64-uwp=fail
systemc:arm64-windows=fail
@@ -1631,6 +1652,10 @@ tcl:arm64-windows=ignore tcl:x64-uwp=ignore
tcl:x64-linux=ignore
tcl:x64-osx=ignore
+teemo:x64-uwp=fail
+teemo:arm-uwp=fail
+teemo:arm64-windows=fail
+teemo:x64-osx=fail
telnetpp:arm-uwp=fail
telnetpp:x64-uwp=fail
tensorflow-cc:arm64-windows=fail
@@ -1716,12 +1741,8 @@ unrar:x64-linux=fail unrar:x64-osx=fail
unrar:x64-uwp=fail
unrar:x64-windows-static=fail
-upb:arm64-windows=fail
upb:arm-uwp=fail
upb:x64-uwp=fail
-upb:x64-windows=fail
-upb:x64-windows-static=fail
-upb:x86-windows=fail
urdfdom:x64-windows-static=fail
usd:x64-linux=ignore
usd:x86-windows=fail
diff --git a/scripts/cmake/vcpkg_common_definitions.cmake b/scripts/cmake/vcpkg_common_definitions.cmake index 14cf460af..724644abc 100644 --- a/scripts/cmake/vcpkg_common_definitions.cmake +++ b/scripts/cmake/vcpkg_common_definitions.cmake @@ -37,9 +37,12 @@ elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Android") set(VCPKG_TARGET_IS_ANDROID 1) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") set(VCPKG_TARGET_IS_FREEBSD 1) +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "MinGW") + set(VCPKG_TARGET_IS_WINDOWS 1) + set(VCPKG_TARGET_IS_MINGW 1) endif() -#Helper variable to identify the host path separator. +#Helper variable to identify the host path separator. if(CMAKE_HOST_WIN32) set(VCPKG_HOST_PATH_SEPARATOR ";") elseif(CMAKE_HOST_UNIX) @@ -61,7 +64,16 @@ else() endif() #Helper variables for libraries -if(VCPKG_TARGET_IS_WINDOWS) +if(VCPKG_TARGET_IS_MINGW) + set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") + set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".dll.a") + set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll") + set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib") + set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib") + set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "lib") + set(VCPKG_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") + set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") +elseif(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll") @@ -71,11 +83,6 @@ if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "") set(VCPKG_FIND_LIBRARY_SUFFIXES ".lib" ".dll") #This is a slight modification to CMakes value which does not include ".dll". set(VCPKG_FIND_LIBRARY_PREFIXES "" "lib") #This is a slight modification to CMakes value which does not include "lib". - ## For CYGWIN and Windows GNU, maybe VCPKG will support that in the future? - #set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".dll.a") - #set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "lib") - #set(VCPKG_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") - #set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") elseif(VCPKG_TARGET_IS_OSX) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "") diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index c31955fb2..260f2471e 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -59,7 +59,7 @@ ## * [poco](https://github.com/Microsoft/vcpkg/blob/master/ports/poco/portfile.cmake) ## * [opencv](https://github.com/Microsoft/vcpkg/blob/master/ports/opencv/portfile.cmake) function(vcpkg_configure_cmake) - cmake_parse_arguments(_csc + cmake_parse_arguments(_csc "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE;NO_CHARSET_FLAG" "SOURCE_PATH;GENERATOR" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" @@ -177,13 +177,13 @@ function(vcpkg_configure_cmake) "Invalid setting for VCPKG_LIBRARY_LINKAGE: \"${VCPKG_LIBRARY_LINKAGE}\". " "It must be \"static\" or \"dynamic\"") endif() - + macro(check_both_vars_are_set var1 var2) if((NOT DEFINED ${var1} OR NOT DEFINED ${var2}) AND (DEFINED ${var1} OR DEFINED ${var2})) message(FATAL_ERROR "Both ${var1} and ${var2} must be set.") endif() endmacro() - + check_both_vars_are_set(VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_DEBUG) check_both_vars_are_set(VCPKG_CXX_FLAGS_RELEASE VCPKG_C_FLAGS_RELEASE) check_both_vars_are_set(VCPKG_CXX_FLAGS VCPKG_C_FLAGS) @@ -204,6 +204,8 @@ function(vcpkg_configure_cmake) set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${SCRIPTS}/toolchains/osx.cmake") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${SCRIPTS}/toolchains/freebsd.cmake") + elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "MinGW") + set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${SCRIPTS}/toolchains/mingw.cmake") endif() endif() diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index 4c402db48..a525dbc11 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -93,11 +93,18 @@ function(vcpkg_find_acquire_program VAR) elseif(VAR MATCHES "PYTHON3") if(CMAKE_HOST_WIN32) set(PROGNAME python) - set(SUBDIR "python-3.7.3") + if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) + set(SUBDIR "python-3.7.3-x86") + set(URL "https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-win32.zip") + set(ARCHIVE "python-3.7.3-embed-win32.zip") + set(HASH 2c1b1f0a29d40a91771ae21a5f733eedc10984cd182cb10c2793bbd24191a89f20612a3f23c34047f37fb06369016bfd4a52915ed1b4a56f8bd2b4ca6994eb31) + else() + set(SUBDIR "python-3.7.3-x64") + set(URL "https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-amd64.zip") + set(ARCHIVE "python-3.7.3-embed-amd64.zip") + set(HASH 4b3e0067b5e8d00b1cac5d556ab4fbd71df2a1852afb3354ee62363aabc8801aca84da09dbd26125527ae54b50488f808c1d82abf18969c23a51dcd57576885f) + endif() set(PATHS ${DOWNLOADS}/tools/python/${SUBDIR}) - set(URL "https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-win32.zip") - set(ARCHIVE "python-3.7.3-embed-win32.zip") - set(HASH 2c1b1f0a29d40a91771ae21a5f733eedc10984cd182cb10c2793bbd24191a89f20612a3f23c34047f37fb06369016bfd4a52915ed1b4a56f8bd2b4ca6994eb31) set(POST_INSTALL_COMMAND ${CMAKE_COMMAND} -E remove python37._pth) else() set(PROGNAME python3) @@ -107,11 +114,18 @@ function(vcpkg_find_acquire_program VAR) elseif(VAR MATCHES "PYTHON2") if(CMAKE_HOST_WIN32) set(PROGNAME python) - set(SUBDIR "python2") + if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) + set(SUBDIR "python-2.7.16-x86") + set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi") + set(ARCHIVE "python-2.7.16.msi") + set(HASH c34a6fa2438682104dccb53650a2bdb79eac7996deff075201a0f71bb835d60d3ed866652a1931f15a29510fe8e1009ac04e423b285122d2e5747fefc4c10254) + else() + set(SUBDIR "python-2.7.16-x64") + set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.amd64.msi") + set(ARCHIVE "python-2.7.16.amd64.msi") + set(HASH 47c1518d1da939e3ba6722c54747778b93a44c525bcb358b253c23b2510374a49a43739c8d0454cedade858f54efa6319763ba33316fdc721305bc457efe4ffb) + endif() set(PATHS ${DOWNLOADS}/tools/python/${SUBDIR}) - set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi") - set(ARCHIVE "python2.msi") - set(HASH c34a6fa2438682104dccb53650a2bdb79eac7996deff075201a0f71bb835d60d3ed866652a1931f15a29510fe8e1009ac04e423b285122d2e5747fefc4c10254) else() set(PROGNAME python2) set(BREW_PACKAGE_NAME "python2") @@ -127,7 +141,10 @@ function(vcpkg_find_acquire_program VAR) set(PROGNAME jom) set(SUBDIR "jom-1.1.3") set(PATHS ${DOWNLOADS}/tools/jom/${SUBDIR}) - set(URL "http://download.qt.io/official_releases/jom/jom_1_1_3.zip") + set(URL + "http://download.qt.io/official_releases/jom/jom_1_1_3.zip" + "http://mirrors.ocf.berkeley.edu/qt/official_releases/jom/jom_1_1_3.zip" + ) set(ARCHIVE "jom_1_1_3.zip") set(HASH 5b158ead86be4eb3a6780928d9163f8562372f30bde051d8c281d81027b766119a6e9241166b91de0aa6146836cea77e5121290e62e31b7a959407840fc57b33) elseif(VAR MATCHES "7Z") @@ -241,9 +258,12 @@ function(vcpkg_find_acquire_program VAR) set(HASH fe121b67b979a4e9580c7f62cfdbe0c243eba62a05b560d6d513ac7f35816d439b26d92fc2d7b7d7241c9ce2a49ea7949455a17587ef53c04a5f5125ac635727) elseif(VAR MATCHES "DOXYGEN") set(PROGNAME doxygen) + set(DOXYGEN_VERSION 1.8.17) set(PATHS ${DOWNLOADS}/tools/doxygen) - set(URL "http://doxygen.nl/files/doxygen-1.8.17.windows.bin.zip") - set(ARCHIVE "doxygen-1.8.17.windows.bin.zip") + set(URL + "http://doxygen.nl/files/doxygen-${DOXYGEN_VERSION}.windows.bin.zip" + "https://sourceforge.net/projects/doxygen/files/rel-${DOXYGEN_VERSION}/doxygen-${DOXYGEN_VERSION}.windows.bin.zip") + set(ARCHIVE "doxygen-${DOXYGEN_VERSION}.windows.bin.zip") set(HASH 6bac47ec552486783a70cc73b44cf86b4ceda12aba6b52835c2221712bd0a6c845cecec178c9ddaa88237f5a781f797add528f47e4ed017c7888eb1dd2bc0b4b) elseif(VAR MATCHES "BAZEL") set(PROGNAME bazel) @@ -310,7 +330,7 @@ function(vcpkg_find_acquire_program VAR) file(COPY ${ARCHIVE_PATH} DESTINATION ${PROG_PATH_SUBDIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) endif() else() - get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} EXT) + get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} LAST_EXT) string(TOLOWER "${ARCHIVE_EXTENSION}" ARCHIVE_EXTENSION) if(ARCHIVE_EXTENSION STREQUAL ".msi") file(TO_NATIVE_PATH "${ARCHIVE_PATH}" ARCHIVE_NATIVE_PATH) diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index a042d9124..d72381be5 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -30,7 +30,6 @@ function(vcpkg_fixup_cmake_targets) set(_vfct_TARGET_PATH share/${PORT}) endif() - if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(EXECUTABLE_SUFFIX "\\.exe") else() @@ -49,7 +48,6 @@ function(vcpkg_fixup_cmake_targets) set(DEBUG_CONFIG ${CURRENT_PACKAGES_DIR}/debug/${_vfct_CONFIG_PATH}) set(RELEASE_CONFIG ${CURRENT_PACKAGES_DIR}/${_vfct_CONFIG_PATH}) - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(NOT EXISTS ${DEBUG_CONFIG}) message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.") diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake deleted file mode 100644 index 3b0b9fbef..000000000 --- a/scripts/get_triplet_environment.cmake +++ /dev/null @@ -1,16 +0,0 @@ -include(${CMAKE_TRIPLET_FILE}) -if (DEFINED VCPKG_ENV_OVERRIDES_FILE) - include(${VCPKG_ENV_OVERRIDES_FILE}) -endif() - -# GUID used as a flag - "cut here line" -message("c35112b6-d1ba-415b-aa5d-81de856ef8eb") -message("VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}") -message("VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") -message("VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}") -message("VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}") -message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") -message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") -message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") -message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") -message("VCPKG_PUBLIC_ABI_OVERRIDE=${VCPKG_PUBLIC_ABI_OVERRIDE}") diff --git a/scripts/ports.cmake b/scripts/ports.cmake index 1aea1ffa3..20e59a184 100644 --- a/scripts/ports.cmake +++ b/scripts/ports.cmake @@ -78,13 +78,9 @@ if(CMD MATCHES "^BUILD$") include(${CMAKE_TRIPLET_FILE}) - if (DEFINED VCPKG_ENV_OVERRIDES_FILE) - include(${VCPKG_ENV_OVERRIDES_FILE}) - endif() - - if (DEFINED VCPKG_PORT_TOOLCHAINS) - foreach(VCPKG_PORT_TOOLCHAIN ${VCPKG_PORT_TOOLCHAINS}) - include(${VCPKG_PORT_TOOLCHAIN}) + if (DEFINED VCPKG_PORT_CONFIGS) + foreach(VCPKG_PORT_CONFIG ${VCPKG_PORT_CONFIGS}) + include(${VCPKG_PORT_CONFIG}) endforeach() endif() @@ -115,6 +111,9 @@ if(CMD MATCHES "^BUILD$") if (DEFINED VCPKG_POLICY_EMPTY_INCLUDE_FOLDER) file(APPEND ${BUILD_INFO_FILE_PATH} "PolicyEmptyIncludeFolder: ${VCPKG_POLICY_EMPTY_INCLUDE_FOLDER}\n") endif() + if (DEFINED VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS) + file(APPEND ${BUILD_INFO_FILE_PATH} "PolicyAllowRestrictedHeaders: ${VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS}\n") + endif() if (DEFINED VCPKG_HEAD_VERSION) file(APPEND ${BUILD_INFO_FILE_PATH} "Version: ${VCPKG_HEAD_VERSION}\n") endif() diff --git a/scripts/templates/portfile.in.cmake b/scripts/templates/portfile.in.cmake index 62c53a6db..7ddf662e8 100644 --- a/scripts/templates/portfile.in.cmake +++ b/scripts/templates/portfile.in.cmake @@ -22,11 +22,12 @@ # VCPKG_TARGET_IS_OSX # VCPKG_TARGET_IS_FREEBSD # VCPKG_TARGET_IS_ANDROID +# VCPKG_TARGET_IS_MINGW # VCPKG_TARGET_EXECUTABLE_SUFFIX # VCPKG_TARGET_STATIC_LIBRARY_SUFFIX # VCPKG_TARGET_SHARED_LIBRARY_SUFFIX # -# See additional helpful variables in /docs/maintainers/vcpkg_common_definitions.md +# See additional helpful variables in /docs/maintainers/vcpkg_common_definitions.md # # Specifies if the port install should fail immediately given a condition # vcpkg_fail_port_install(MESSAGE "@PORT@ currently only supports Linux and Mac platforms" ON_TARGET "Windows") @@ -39,10 +40,10 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} + ARCHIVE ${ARCHIVE} # (Optional) A friendly name to use instead of the filename of the archive (e.g.: a version number or tag). # REF 1.0.0 - # (Optional) Read the docs for how to generate patches at: + # (Optional) Read the docs for how to generate patches at: # https://github.com/Microsoft/vcpkg/blob/master/docs/examples/patching.md # PATCHES # 001_port_fixes.patch diff --git a/scripts/toolchains/mingw.cmake b/scripts/toolchains/mingw.cmake new file mode 100644 index 000000000..def98799f --- /dev/null +++ b/scripts/toolchains/mingw.cmake @@ -0,0 +1,40 @@ +if(NOT _VCPKG_MINGW_TOOLCHAIN)
+set(_VCPKG_MINGW_TOOLCHAIN 1)
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+ set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "")
+endif()
+
+# Need to override MinGW from VCPKG_CMAKE_SYSTEM_NAME
+set(CMAKE_SYSTEM_NAME Windows CACHE STRING "" FORCE)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(CMAKE_SYSTEM_PROCESSOR i686 CACHE STRING "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(CMAKE_SYSTEM_PROCESSOR armv7 CACHE STRING "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "")
+endif()
+
+foreach(lang C CXX)
+ set(CMAKE_${lang}_COMPILER_TARGET "${CMAKE_SYSTEM_PROCESSOR}-windows-gnu" CACHE STRING "")
+endforeach()
+
+get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
+if(NOT _CMAKE_IN_TRY_COMPILE)
+ string(APPEND CMAKE_C_FLAGS_INIT " ${VCPKG_C_FLAGS} ")
+ string(APPEND CMAKE_CXX_FLAGS_INIT " ${VCPKG_CXX_FLAGS} ")
+ string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ")
+
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT "-static ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-static ")
+ endif()
+endif()
+endif()
diff --git a/scripts/vcpkg_get_dep_info.cmake b/scripts/vcpkg_get_dep_info.cmake new file mode 100644 index 000000000..92212b82d --- /dev/null +++ b/scripts/vcpkg_get_dep_info.cmake @@ -0,0 +1,19 @@ +function(vcpkg_get_dep_info PORT VCPKG_TRIPLET_ID) + message("d8187afd-ea4a-4fc3-9aa4-a6782e1ed9af") + vcpkg_triplet_file(${VCPKG_TRIPLET_ID}) + + # GUID used as a flag - "cut here line" + message("c35112b6-d1ba-415b-aa5d-81de856ef8eb +VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE} +VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME} +VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION} +VCPKG_LIBRARY_LINKAGE=${VCPKG_LIBRARY_LINKAGE} +VCPKG_CRT_LINKAGE=${VCPKG_CRT_LINKAGE} +VCPKG_DEP_INFO_OVERRIDE_VARS=${VCPKG_DEP_INFO_OVERRIDE_VARS} +CMAKE_HOST_SYSTEM_NAME=${CMAKE_HOST_SYSTEM_NAME} +CMAKE_HOST_SYSTEM_PROCESSOR=${CMAKE_HOST_SYSTEM_PROCESSOR} +CMAKE_HOST_SYSTEM_VERSION=${CMAKE_HOST_SYSTEM_VERSION} +CMAKE_HOST_SYSTEM=${CMAKE_HOST_SYSTEM} +e1e74b5c-18cb-4474-a6bd-5c1c8bc81f3f +8c504940-be29-4cba-9f8f-6cd83e9d87b7") +endfunction() diff --git a/scripts/vcpkg_get_tags.cmake b/scripts/vcpkg_get_tags.cmake new file mode 100644 index 000000000..ccdc4fea6 --- /dev/null +++ b/scripts/vcpkg_get_tags.cmake @@ -0,0 +1,28 @@ +function(vcpkg_get_tags PORT FEATURES VCPKG_TRIPLET_ID VCPKG_ABI_SETTINGS_FILE) + message("d8187afd-ea4a-4fc3-9aa4-a6782e1ed9af") + vcpkg_triplet_file(${VCPKG_TRIPLET_ID}) + + # GUID used as a flag - "cut here line" + message("c35112b6-d1ba-415b-aa5d-81de856ef8eb +VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE} +VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME} +VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION} +VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET} +VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH} +VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} +VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE} +e1e74b5c-18cb-4474-a6bd-5c1c8bc81f3f") + + # Just to enforce the user didn't set it in the triplet file + if (DEFINED VCPKG_PUBLIC_ABI_OVERRIDE) + set(VCPKG_PUBLIC_ABI_OVERRIDE) + message(WARNING "VCPKG_PUBLIC_ABI_OVERRIDE set in the triplet will be ignored.") + endif() + include("${VCPKG_ABI_SETTINGS_FILE}" OPTIONAL) + + message("c35112b6-d1ba-415b-aa5d-81de856ef8eb +VCPKG_PUBLIC_ABI_OVERRIDE=${VCPKG_PUBLIC_ABI_OVERRIDE} +VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH} +e1e74b5c-18cb-4474-a6bd-5c1c8bc81f3f +8c504940-be29-4cba-9f8f-6cd83e9d87b7") +endfunction() |
