aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorBarath Kannan <barathsotd@gmail.com>2017-12-27 16:57:43 +1100
committerBarath Kannan <barathsotd@gmail.com>2017-12-27 16:57:43 +1100
commitd8f0ea999983892b8e5e49340ece3474ee257156 (patch)
treece9b615075350d90d0b7312874bae6dd202fe93b /scripts
parent22e9a2b25db21e1d1a1f75786442f2c90ae0db0c (diff)
parent6e05f9cdf5cf4d53153214f4d4b29133b368bc4d (diff)
downloadvcpkg-d8f0ea999983892b8e5e49340ece3474ee257156.tar.gz
vcpkg-d8f0ea999983892b8e5e49340ece3474ee257156.zip
resolve merge conflicts
Diffstat (limited to 'scripts')
-rw-r--r--scripts/VcpkgPowershellUtils.ps159
-rw-r--r--scripts/addPoshVcpkgToPowershellProfile.ps156
-rw-r--r--scripts/bootstrap.ps12
-rw-r--r--scripts/buildsystems/msbuild/vcpkg.targets4
-rw-r--r--scripts/buildsystems/vcpkg.cmake97
-rw-r--r--scripts/cmake/vcpkg_build_cmake.cmake32
-rw-r--r--scripts/cmake/vcpkg_build_msbuild.cmake44
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake56
-rw-r--r--scripts/cmake/vcpkg_configure_meson.cmake56
-rw-r--r--scripts/cmake/vcpkg_download_distfile.cmake10
-rw-r--r--scripts/cmake/vcpkg_execute_required_process.cmake7
-rw-r--r--scripts/cmake/vcpkg_find_acquire_program.cmake8
-rw-r--r--scripts/cmake/vcpkg_fixup_cmake_targets.cmake76
-rw-r--r--scripts/cmake/vcpkg_from_github.cmake10
-rw-r--r--scripts/fetchDependency.ps120
-rw-r--r--scripts/findAnyMSBuildWithCppPlatformToolset.ps15
-rw-r--r--scripts/get_triplet_environment.cmake4
-rw-r--r--scripts/internalCI.ps117
18 files changed, 365 insertions, 198 deletions
diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1
index 12eacec96..e394e540e 100644
--- a/scripts/VcpkgPowershellUtils.ps1
+++ b/scripts/VcpkgPowershellUtils.ps1
@@ -3,7 +3,7 @@ function vcpkgHasModule([Parameter(Mandatory=$true)][string]$moduleName)
return [bool](Get-Module -ListAvailable -Name $moduleName)
}
-function vcpkgCreateDirectory([Parameter(Mandatory=$true)][string]$dirPath)
+function vcpkgCreateDirectoryIfNotExists([Parameter(Mandatory=$true)][string]$dirPath)
{
if (!(Test-Path $dirPath))
{
@@ -11,19 +11,25 @@ function vcpkgCreateDirectory([Parameter(Mandatory=$true)][string]$dirPath)
}
}
-function vcpkgRemoveDirectory([Parameter(Mandatory=$true)][string]$dirPath)
+function vcpkgCreateParentDirectoryIfNotExists([Parameter(Mandatory=$true)][string]$path)
{
- if (Test-Path $dirPath)
+ $parentDir = split-path -parent $path
+ if ([string]::IsNullOrEmpty($parentDir))
{
- Remove-Item $dirPath -Recurse -Force
+ return
+ }
+
+ if (!(Test-Path $parentDir))
+ {
+ New-Item -ItemType Directory -Path $parentDir | Out-Null
}
}
-function vcpkgRemoveFile([Parameter(Mandatory=$true)][string]$filePath)
+function vcpkgRemoveItem([Parameter(Mandatory=$true)][string]$dirPath)
{
- if (Test-Path $filePath)
+ if (Test-Path $dirPath)
{
- Remove-Item $filePath -Force
+ Remove-Item $dirPath -Recurse -Force
}
}
@@ -101,11 +107,10 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
return
}
- $downloadDir = split-path -parent $downloadPath
- vcpkgCreateDirectory $downloadDir
+ vcpkgCreateParentDirectoryIfNotExists $downloadPath
$downloadPartPath = "$downloadPath.part"
- vcpkgRemoveFile $downloadPartPath
+ vcpkgRemoveItem $downloadPartPath
$wc = New-Object System.Net.WebClient
$proxyAuth = !$wc.Proxy.IsBypassed($url)
@@ -131,7 +136,7 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
catch [System.Exception]
{
# If BITS fails for any reason, delete any potentially partially downloaded files and continue
- vcpkgRemoveFile $downloadPartPath
+ vcpkgRemoveItem $downloadPartPath
}
}
@@ -141,13 +146,20 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
}
function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file,
- [Parameter(Mandatory=$true)][string]$destination)
+ [Parameter(Mandatory=$true)][string]$destinationDir,
+ [Parameter(Mandatory=$true)][string]$outFilename)
{
- vcpkgCreateDirectory $destination
- $baseName = (Get-ChildItem .\downloads\cmake-3.9.5-win32-x86.zip).BaseName
- $destinationPartial = "$destination\$baseName-partially_extracted"
- vcpkgRemoveDirectory $destinationPartial
- vcpkgCreateDirectory $destinationPartial
+ vcpkgCreateDirectoryIfNotExists $destinationDir
+ $output = "$destinationDir\$outFilename"
+ vcpkgRemoveItem $output
+ $destinationPartial = "$destinationDir\partially-extracted"
+
+ vcpkgRemoveItem $destinationPartial
+ vcpkgCreateDirectoryIfNotExists $destinationPartial
+
+ $shell = new-object -com shell.application
+ $zip = $shell.NameSpace($file)
+ $itemCount = $zip.Items().Count
if (vcpkgHasCommand -commandName 'Microsoft.PowerShell.Archive\Expand-Archive')
{
@@ -162,8 +174,6 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file,
else
{
Write-Verbose("Extracting via shell")
- $shell = new-object -com shell.application
- $zip = $shell.NameSpace($file)
foreach($item in $zip.items())
{
# Piping to Out-Null is used to block until finished
@@ -171,8 +181,15 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file,
}
}
- Move-Item -Path "$destinationPartial\*" -Destination $destination
- vcpkgRemoveDirectory $destinationPartial
+ if ($itemCount -eq 1)
+ {
+ Move-Item -Path "$destinationPartial\*" -Destination $output
+ vcpkgRemoveItem $destinationPartial
+ }
+ else
+ {
+ Move-Item -Path $destinationPartial -Destination $output
+ }
}
function vcpkgInvokeCommand()
diff --git a/scripts/addPoshVcpkgToPowershellProfile.ps1 b/scripts/addPoshVcpkgToPowershellProfile.ps1
new file mode 100644
index 000000000..7a12e7d34
--- /dev/null
+++ b/scripts/addPoshVcpkgToPowershellProfile.ps1
@@ -0,0 +1,56 @@
+[CmdletBinding()]
+param()
+
+function findExistingImportModuleDirectives([Parameter(Mandatory=$true)][string]$path)
+{
+ if (!(Test-Path $path))
+ {
+ return
+ }
+
+ $fileContents = Get-Content $path
+ $fileContents -match 'Import-Module.+?(?=posh-vcpkg)'
+ return
+}
+
+$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
+. "$scriptsDir\VcpkgPowershellUtils.ps1"
+
+$profileEntry = "Import-Module '$scriptsDir\posh-vcpkg'"
+$profilePath = $PROFILE # Implicit powershell variable
+if (!(Test-Path $profilePath))
+{
+ $profileDir = Split-Path $profilePath -Parent
+ vcpkgCreateDirectoryIfNotExists $profileDir
+}
+
+Write-Host "`nAdding the following line to ${profilePath}:"
+Write-Host " $profileEntry"
+
+# @() Needed to force Array in PowerShell 2.0
+[Array]$existingImports = @(findExistingImportModuleDirectives $profilePath)
+if ($existingImports.Count -gt 0)
+{
+ $existingImportsOut = $existingImports -join "`n "
+ Write-Host "`nposh-vcpkg is already imported to your PowerShell profile. The following entries were found:"
+ Write-Host " $existingImportsOut"
+ Write-Host "`nPlease make sure you have started a new Powershell window for the changes to take effect."
+ return
+}
+
+# Posh-git does the following check, so we should too.
+# https://github.com/dahlbyk/posh-git/blob/master/src/Utils.ps1
+# If the profile script exists and is signed, then we should not modify it
+if (Test-Path $profilePath)
+{
+ $sig = Get-AuthenticodeSignature $profilePath
+ if ($null -ne $sig.SignerCertificate)
+ {
+ Write-Warning "Skipping add of posh-vcpkg import to profile; '$profilePath' appears to be signed."
+ Write-Warning "Please manually add the line '$profileEntry' to your profile and resign it."
+ return
+ }
+}
+
+Add-Content $profilePath -Value "`n$profileEntry" -Encoding UTF8
+Write-Host "`nSuccessfully added posh-vcpkg to your PowerShell profile. Please start a new Powershell window for the changes to take effect."
diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1
index ca7b1a0ce..3f40a2ead 100644
--- a/scripts/bootstrap.ps1
+++ b/scripts/bootstrap.ps1
@@ -46,7 +46,7 @@ try
& $msbuildExe "/p:VCPKG_VERSION=-$gitHash" "/p:DISABLE_METRICS=$disableMetrics" /p:Configuration=Release /p:Platform=x86 /p:PlatformToolset=$platformToolset /p:TargetPlatformVersion=$windowsSDK /m dirs.proj
if ($LASTEXITCODE -ne 0)
{
- Write-Error "Building vcpkg.exe failed. Please ensure you have installed the Desktop C++ workload and the Windows SDK for Desktop C++."
+ Write-Error "Building vcpkg.exe failed. Please ensure you have installed Visual Studio with the Desktop C++ workload and the Windows SDK for Desktop C++."
return
}
diff --git a/scripts/buildsystems/msbuild/vcpkg.targets b/scripts/buildsystems/msbuild/vcpkg.targets
index ad1dde89b..092e013b5 100644
--- a/scripts/buildsystems/msbuild/vcpkg.targets
+++ b/scripts/buildsystems/msbuild/vcpkg.targets
@@ -67,11 +67,11 @@
File="$(TLogLocation)$(ProjectName).write.1u.tlog"
Lines="^$(TargetPath);$([System.IO.Path]::Combine($(ProjectDir),$(IntDir)))vcpkg.applocal.log" Encoding="Unicode"/>
<Exec Condition="$(VcpkgConfiguration.StartsWith('Debug'))"
- Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)debug\bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
+ Command="$(SystemRoot)\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)debug\bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
StandardOutputImportance="Normal">
</Exec>
<Exec Condition="$(VcpkgConfiguration.StartsWith('Release'))"
- Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
+ Command="$(SystemRoot)\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
StandardOutputImportance="Normal">
</Exec>
<ReadLinesFromFile File="$(IntDir)vcpkg.applocal.log">
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake
index ff89439cc..b8d3fbdbb 100644
--- a/scripts/buildsystems/vcpkg.cmake
+++ b/scripts/buildsystems/vcpkg.cmake
@@ -1,6 +1,12 @@
# Mark variables as used so cmake doesn't complain about them
mark_as_advanced(CMAKE_TOOLCHAIN_FILE)
+# This is a backport of CMAKE_TRY_COMPILE_PLATFORM_VARIABLES to cmake 3.0
+get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
+if( _CMAKE_IN_TRY_COMPILE )
+ include( "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg.config.cmake" OPTIONAL )
+endif()
+
if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
endif()
@@ -9,11 +15,6 @@ if(VCPKG_TOOLCHAIN)
return()
endif()
-get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
-if( _CMAKE_IN_TRY_COMPILE )
- include( "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg.config.cmake" OPTIONAL )
-endif()
-
if(VCPKG_TARGET_TRIPLET)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Ww][Ii][Nn]32$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
@@ -30,9 +31,9 @@ else()
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017 Win64$")
set(_VCPKG_TARGET_TRIPLET_ARCH x64)
- elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017 ARM")
+ elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017 ARM$")
set(_VCPKG_TARGET_TRIPLET_ARCH arm)
- elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017")
+ elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
else()
find_program(_VCPKG_CL cl)
@@ -42,6 +43,8 @@ else()
set(_VCPKG_TARGET_TRIPLET_ARCH arm)
elseif(_VCPKG_CL MATCHES "bin/cl.exe$" OR _VCPKG_CL MATCHES "x86/cl.exe$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
+ elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(_VCPKG_TARGET_TRIPLET_ARCH x64)
else()
message(FATAL_ERROR "Unable to determine target architecture.")
endif()
@@ -50,24 +53,28 @@ endif()
if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone")
set(_VCPKG_TARGET_TRIPLET_PLAT uwp)
-else()
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
+ set(_VCPKG_TARGET_TRIPLET_PLAT linux)
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
set(_VCPKG_TARGET_TRIPLET_PLAT windows)
endif()
set(VCPKG_TARGET_TRIPLET ${_VCPKG_TARGET_TRIPLET_ARCH}-${_VCPKG_TARGET_TRIPLET_PLAT} CACHE STRING "Vcpkg target triplet (ex. x86-windows)")
set(_VCPKG_TOOLCHAIN_DIR ${CMAKE_CURRENT_LIST_DIR})
-# Detect .vcpkg-root to figure VCPKG_ROOT_DIR
-set(_VCPKG_ROOT_DIR_CANDIDATE ${CMAKE_CURRENT_LIST_DIR})
-while(IS_DIRECTORY ${_VCPKG_ROOT_DIR_CANDIDATE} AND NOT EXISTS "${_VCPKG_ROOT_DIR_CANDIDATE}/.vcpkg-root")
- get_filename_component(_VCPKG_ROOT_DIR_TEMP ${_VCPKG_ROOT_DIR_CANDIDATE} DIRECTORY)
- if (_VCPKG_ROOT_DIR_TEMP STREQUAL _VCPKG_ROOT_DIR_CANDIDATE) # If unchanged, we have reached the root of the drive
- message(FATAL_ERROR "Could not find .vcpkg-root")
- else()
- SET(_VCPKG_ROOT_DIR_CANDIDATE ${_VCPKG_ROOT_DIR_TEMP})
- endif()
-endwhile()
-set(_VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR_CANDIDATE})
+if(NOT DEFINED _VCPKG_ROOT_DIR)
+ # Detect .vcpkg-root to figure VCPKG_ROOT_DIR
+ set(_VCPKG_ROOT_DIR_CANDIDATE ${CMAKE_CURRENT_LIST_DIR})
+ while(IS_DIRECTORY ${_VCPKG_ROOT_DIR_CANDIDATE} AND NOT EXISTS "${_VCPKG_ROOT_DIR_CANDIDATE}/.vcpkg-root")
+ get_filename_component(_VCPKG_ROOT_DIR_TEMP ${_VCPKG_ROOT_DIR_CANDIDATE} DIRECTORY)
+ if (_VCPKG_ROOT_DIR_TEMP STREQUAL _VCPKG_ROOT_DIR_CANDIDATE) # If unchanged, we have reached the root of the drive
+ message(FATAL_ERROR "Could not find .vcpkg-root")
+ else()
+ SET(_VCPKG_ROOT_DIR_CANDIDATE ${_VCPKG_ROOT_DIR_TEMP})
+ endif()
+ endwhile()
+ set(_VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR_CANDIDATE} CACHE INTERNAL "Vcpkg root directory")
+endif()
set(_VCPKG_INSTALLED_DIR ${_VCPKG_ROOT_DIR}/installed)
if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE)
@@ -77,17 +84,21 @@ if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE)
list(APPEND CMAKE_LIBRARY_PATH
${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/manual-link
)
+ list(APPEND CMAKE_FIND_ROOT_PATH
+ ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug
+ )
endif()
list(APPEND CMAKE_PREFIX_PATH
${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}
)
+list(APPEND CMAKE_FIND_ROOT_PATH
+ ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}
+)
list(APPEND CMAKE_LIBRARY_PATH
${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link
)
-set(Boost_COMPILER "-vc140")
-
-if (NOT DEFINED CMAKE_SYSTEM_VERSION)
+if (NOT DEFINED CMAKE_SYSTEM_VERSION AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp")
include(${_VCPKG_ROOT_DIR}/scripts/cmake/vcpkg_get_windows_sdk.cmake)
# This is used as an implicit parameter for vcpkg_get_windows_sdk
set(VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR})
@@ -114,11 +125,11 @@ set(CMAKE_SYSTEM_IGNORE_PATH
"C:/OpenSSL-Win64/lib/VC/static"
)
-set(CMAKE_PROGRAM_PATH ${CMAKE_PROGRAM_PATH} ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools)
+list(APPEND CMAKE_PROGRAM_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools)
file(GLOB _VCPKG_TOOLS_DIRS ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/*)
foreach(_VCPKG_TOOLS_DIR ${_VCPKG_TOOLS_DIRS})
if(IS_DIRECTORY ${_VCPKG_TOOLS_DIR})
- set(CMAKE_PROGRAM_PATH ${CMAKE_PROGRAM_PATH} ${_VCPKG_TOOLS_DIR})
+ list(APPEND CMAKE_PROGRAM_PATH ${_VCPKG_TOOLS_DIR})
endif()
endforeach()
@@ -128,7 +139,7 @@ function(add_executable name)
list(FIND ARGV "IMPORTED" IMPORTED_IDX)
list(FIND ARGV "ALIAS" ALIAS_IDX)
if(IMPORTED_IDX EQUAL -1 AND ALIAS_IDX EQUAL -1)
- if(VCPKG_APPLOCAL_DEPS)
+ if(VCPKG_APPLOCAL_DEPS AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp")
add_custom_command(TARGET ${name} POST_BUILD
COMMAND powershell -noprofile -executionpolicy Bypass -file ${_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1
-targetBinary $<TARGET_FILE:${name}>
@@ -154,10 +165,22 @@ endfunction()
macro(find_package name)
if("${name}" STREQUAL "Boost")
+ set(_Boost_USE_STATIC_LIBS ${Boost_USE_STATIC_LIBS})
+ set(_Boost_USE_MULTITHREADED ${Boost_USE_MULTITHREADED})
+ set(_Boost_USE_STATIC_RUNTIME ${Boost_USE_STATIC_RUNTIME})
+ set(_Boost_COMPILER ${Boost_COMPILER})
unset(Boost_USE_STATIC_LIBS)
unset(Boost_USE_MULTITHREADED)
unset(Boost_USE_STATIC_RUNTIME)
+ set(Boost_COMPILER "-vc140")
_find_package(${ARGV})
+ if(NOT Boost_FOUND)
+ set(Boost_USE_STATIC_LIBS ${_Boost_USE_STATIC_LIBS})
+ set(Boost_USE_MULTITHREADED ${_Boost_USE_MULTITHREADED})
+ set(Boost_USE_STATIC_RUNTIME ${_Boost_USE_STATIC_RUNTIME})
+ set(Boost_COMPILER ${_Boost_COMPILER})
+ _find_package(${ARGV})
+ endif()
elseif("${name}" STREQUAL "ICU")
function(_vcpkg_find_in_list)
list(FIND ARGV "COMPONENTS" COMPONENTS_IDX)
@@ -178,6 +201,23 @@ macro(find_package name)
if(TIFF_LIBRARIES)
list(APPEND TIFF_LIBRARIES ${LIBLZMA_LIBRARIES})
endif()
+ elseif("${name}" STREQUAL "tinyxml2")
+ _find_package(${ARGV})
+ if(TARGET tinyxml2_static AND NOT TARGET tinyxml2)
+ add_library(tinyxml2 INTERFACE IMPORTED)
+ set_target_properties(tinyxml2 PROPERTIES INTERFACE_LINK_LIBRARIES "tinyxml2_static")
+ endif()
+ elseif("${name}" STREQUAL "MPI")
+ if(MPI_C_LIB_NAMES)
+ set(MPI_C_WORKS TRUE)
+ set(MPI_C_WRAPPER_FOUND TRUE)
+ endif()
+ if(MPI_CXX_LIB_NAMES)
+ set(MPI_CXX_WORKS TRUE)
+ set(MPI_CXX_WRAPPER_FOUND TRUE)
+ set(MPI_CXX_VALIDATE_SKIP_MPICXX TRUE)
+ endif()
+ _find_package(${ARGV})
else()
_find_package(${ARGV})
endif()
@@ -192,8 +232,11 @@ set(_UNUSED ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP})
if(NOT _CMAKE_IN_TRY_COMPILE)
file(TO_CMAKE_PATH "${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" _chainload_file)
+ file(TO_CMAKE_PATH "${_VCPKG_ROOT_DIR}" _root_dir)
file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/vcpkg.config.cmake"
"set(VCPKG_TARGET_TRIPLET \"${VCPKG_TARGET_TRIPLET}\" CACHE STRING \"\")\n"
"set(VCPKG_APPLOCAL_DEPS \"${VCPKG_APPLOCAL_DEPS}\" CACHE STRING \"\")\n"
- "set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE \"${_chainload_file}\" CACHE STRING \"\")\n")
-endif() \ No newline at end of file
+ "set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE \"${_chainload_file}\" CACHE STRING \"\")\n"
+ "set(_VCPKG_ROOT_DIR \"${_root_dir}\" CACHE STRING \"\")\n"
+ )
+endif()
diff --git a/scripts/cmake/vcpkg_build_cmake.cmake b/scripts/cmake/vcpkg_build_cmake.cmake
index 5dc81ec09..0b4bbd211 100644
--- a/scripts/cmake/vcpkg_build_cmake.cmake
+++ b/scripts/cmake/vcpkg_build_cmake.cmake
@@ -58,19 +58,23 @@ function(vcpkg_build_cmake)
set(TARGET_PARAM)
endif()
- message(STATUS "Build ${TARGET_TRIPLET}-rel")
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} --build . --config Release ${TARGET_PARAM} -- ${BUILD_ARGS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Build ${TARGET_TRIPLET}-rel done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Build ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} --build . --config Release ${TARGET_PARAM} -- ${BUILD_ARGS}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Build ${TARGET_TRIPLET}-rel done")
+ endif()
- message(STATUS "Build ${TARGET_TRIPLET}-dbg")
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} --build . --config Debug ${TARGET_PARAM} -- ${BUILD_ARGS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} --build . --config Debug ${TARGET_PARAM} -- ${BUILD_ARGS}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+ endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_build_msbuild.cmake b/scripts/cmake/vcpkg_build_msbuild.cmake
index 81f442ef7..b8403d277 100644
--- a/scripts/cmake/vcpkg_build_msbuild.cmake
+++ b/scripts/cmake/vcpkg_build_msbuild.cmake
@@ -87,25 +87,29 @@ function(vcpkg_build_msbuild)
/m
)
- message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- vcpkg_execute_required_process(
- COMMAND msbuild ${_csc_PROJECT_PATH}
- /p:Configuration=${_csc_RELEASE_CONFIGURATION}
- ${_csc_OPTIONS}
- ${_csc_OPTIONS_RELEASE}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME build-${TARGET_TRIPLET}-rel
- )
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ vcpkg_execute_required_process(
+ COMMAND msbuild ${_csc_PROJECT_PATH}
+ /p:Configuration=${_csc_RELEASE_CONFIGURATION}
+ ${_csc_OPTIONS}
+ ${_csc_OPTIONS_RELEASE}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME build-${TARGET_TRIPLET}-rel
+ )
+ endif()
- message(STATUS "Building ${_csc_PROJECT_PATH} for Debug")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- vcpkg_execute_required_process(
- COMMAND msbuild ${_csc_PROJECT_PATH}
- /p:Configuration=${_csc_DEBUG_CONFIGURATION}
- ${_csc_OPTIONS}
- ${_csc_OPTIONS_DEBUG}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME build-${TARGET_TRIPLET}-dbg
- )
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${_csc_PROJECT_PATH} for Debug")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ vcpkg_execute_required_process(
+ COMMAND msbuild ${_csc_PROJECT_PATH}
+ /p:Configuration=${_csc_DEBUG_CONFIGURATION}
+ ${_csc_OPTIONS}
+ ${_csc_OPTIONS_DEBUG}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME build-${TARGET_TRIPLET}-dbg
+ )
+ endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index b979245aa..4bcf3d2c9 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -61,6 +61,14 @@ function(vcpkg_configure_cmake)
set(GENERATOR ${_csc_GENERATOR})
elseif(_csc_PREFER_NINJA AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT _csc_HOST_ARCHITECTURE STREQUAL "x86")
set(GENERATOR "Ninja")
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(GENERATOR "Visual Studio 12 2013")
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(GENERATOR "Visual Studio 12 2013 Win64")
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(GENERATOR "Visual Studio 12 2013 ARM")
+ elseif(VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
+ set(GENERATOR "Ninja")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
@@ -191,29 +199,33 @@ function(vcpkg_configure_cmake)
)
endif()
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE}
- -G ${GENERATOR}
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME config-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE}
+ -G ${GENERATOR}
+ -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME config-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+ endif()
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG}
- -G ${GENERATOR}
- -DCMAKE_BUILD_TYPE=Debug
- -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME config-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG}
+ -G ${GENERATOR}
+ -DCMAKE_BUILD_TYPE=Debug
+ -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ endif()
set(_VCPKG_CMAKE_GENERATOR "${GENERATOR}" PARENT_SCOPE)
endfunction() \ No newline at end of file
diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake
index 143bb74de..9b87261d5 100644
--- a/scripts/cmake/vcpkg_configure_meson.cmake
+++ b/scripts/cmake/vcpkg_configure_meson.cmake
@@ -42,31 +42,35 @@ function(vcpkg_configure_meson)
set(ENV{PATH} "$ENV{PATH};${NINJA_PATH}")
# configure release
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_RELEASE_CFLAGS}")
- set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_RELEASE_CXXFLAGS}")
- set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_RELEASE_LDFLAGS}")
- set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_RELEASE_CPPFLAGS}")
- vcpkg_execute_required_process(
- COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_RELEASE} ${_vcm_SOURCE_PATH}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME config-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
-
- # configure debug
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_DEBUG_CFLAGS}")
- set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_DEBUG_CXXFLAGS}")
- set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_DEBUG_LDFLAGS}")
- set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_DEBUG_CPPFLAGS}")
- vcpkg_execute_required_process(
- COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_DEBUG} ${_vcm_SOURCE_PATH}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME config-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_RELEASE_CFLAGS}")
+ set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_RELEASE_CXXFLAGS}")
+ set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_RELEASE_LDFLAGS}")
+ set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_RELEASE_CPPFLAGS}")
+ vcpkg_execute_required_process(
+ COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_RELEASE} ${_vcm_SOURCE_PATH}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME config-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+ endif()
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ # configure debug
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_DEBUG_CFLAGS}")
+ set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_DEBUG_CXXFLAGS}")
+ set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_DEBUG_LDFLAGS}")
+ set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_DEBUG_CPPFLAGS}")
+ vcpkg_execute_required_process(
+ COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_DEBUG} ${_vcm_SOURCE_PATH}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_download_distfile.cmake b/scripts/cmake/vcpkg_download_distfile.cmake
index b22d82a16..24503338a 100644
--- a/scripts/cmake/vcpkg_download_distfile.cmake
+++ b/scripts/cmake/vcpkg_download_distfile.cmake
@@ -39,6 +39,16 @@ function(vcpkg_download_distfile VAR)
set(multipleValuesArgs URLS)
cmake_parse_arguments(vcpkg_download_distfile "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN})
+ if(NOT DEFINED vcpkg_download_distfile_URLS)
+ message(FATAL_ERROR "vcpkg_download_distfile requires a URLS argument.")
+ endif()
+ if(NOT DEFINED vcpkg_download_distfile_FILENAME)
+ message(FATAL_ERROR "vcpkg_download_distfile requires a FILENAME argument.")
+ endif()
+ if(NOT DEFINED vcpkg_download_distfile_SHA512)
+ message(FATAL_ERROR "vcpkg_download_distfile requires a SHA512 argument.")
+ endif()
+
set(downloaded_file_path ${DOWNLOADS}/${vcpkg_download_distfile_FILENAME})
set(download_file_path_part "${DOWNLOADS}/temp/${vcpkg_download_distfile_FILENAME}")
diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake
index 173bca6e9..7c4907016 100644
--- a/scripts/cmake/vcpkg_execute_required_process.cmake
+++ b/scripts/cmake/vcpkg_execute_required_process.cmake
@@ -38,13 +38,14 @@ function(vcpkg_execute_required_process)
RESULT_VARIABLE error_code
WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY})
#debug_message("error_code=${error_code}")
- file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}" NATIVE_BUILDTREES_DIR)
if(error_code)
+ file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log" NATIVE_LOG_OUT)
+ file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-err.log" NATIVE_LOG_ERR)
message(FATAL_ERROR
" Command failed: ${vcpkg_execute_required_process_COMMAND}\n"
" Working Directory: ${vcpkg_execute_required_process_WORKING_DIRECTORY}\n"
" See logs for more information:\n"
- " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_LOGNAME}-out.log\n"
- " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_LOGNAME}-err.log\n")
+ " ${NATIVE_LOG_OUT}\n"
+ " ${NATIVE_LOG_ERR}\n")
endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake
index e6a37e328..066126e6c 100644
--- a/scripts/cmake/vcpkg_find_acquire_program.cmake
+++ b/scripts/cmake/vcpkg_find_acquire_program.cmake
@@ -148,6 +148,14 @@ function(vcpkg_find_acquire_program VAR)
set(URL "https://github.com/wixtoolset/wix3/releases/download/wix311rtm/wix311-binaries.zip")
set(ARCHIVE "wix311-binaries.zip")
set(HASH 74f0fa29b5991ca655e34a9d1000d47d4272e071113fada86727ee943d913177ae96dc3d435eaf494d2158f37560cd4c2c5274176946ebdb17bf2354ced1c516)
+ elseif(VAR MATCHES "SCONS")
+ set(PROGNAME scons)
+ set(REQUIRED_INTERPRETER PYTHON2)
+ set(SCRIPTNAME "scons.py")
+ set(PATHS ${DOWNLOADS}/tools/scons)
+ set(URL "https://sourceforge.net/projects/scons/files/scons-local-3.0.1.zip/download")
+ set(ARCHIVE "scons-local-3.0.1.zip")
+ set(HASH fe121b67b979a4e9580c7f62cfdbe0c243eba62a05b560d6d513ac7f35816d439b26d92fc2d7b7d7241c9ce2a49ea7949455a17587ef53c04a5f5125ac635727)
else()
message(FATAL "unknown tool ${VAR} -- unable to acquire.")
endif()
diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
index 5bf1b2cdb..f86ad0661 100644
--- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
+++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
@@ -27,29 +27,33 @@ 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 EXISTS ${DEBUG_CONFIG})
- message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.")
- endif()
+ 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.")
+ endif()
- file(MAKE_DIRECTORY ${DEBUG_SHARE})
- file(GLOB FILES ${DEBUG_CONFIG}/*)
- file(COPY ${FILES} DESTINATION ${DEBUG_SHARE})
- file(REMOVE_RECURSE ${DEBUG_CONFIG})
+ file(MAKE_DIRECTORY ${DEBUG_SHARE})
+ file(GLOB FILES ${DEBUG_CONFIG}/*)
+ file(COPY ${FILES} DESTINATION ${DEBUG_SHARE})
+ file(REMOVE_RECURSE ${DEBUG_CONFIG})
+ endif()
file(GLOB FILES ${RELEASE_CONFIG}/*)
file(COPY ${FILES} DESTINATION ${RELEASE_SHARE})
file(REMOVE_RECURSE ${RELEASE_CONFIG})
- get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME)
- string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME)
- if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake")
- file(REMOVE_RECURSE ${DEBUG_CONFIG})
- else()
- get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY)
- get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME)
string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME)
if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake")
- file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR})
+ file(REMOVE_RECURSE ${DEBUG_CONFIG})
+ else()
+ get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY)
+ get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME)
+ string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME)
+ if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake")
+ file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR})
+ endif()
endif()
endif()
@@ -67,8 +71,10 @@ function(vcpkg_fixup_cmake_targets)
endif()
endif()
- if(NOT EXISTS ${DEBUG_SHARE})
- message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ if(NOT EXISTS ${DEBUG_SHARE})
+ message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.")
+ endif()
endif()
file(GLOB UNUSED_FILES
@@ -94,23 +100,25 @@ function(vcpkg_fixup_cmake_targets)
file(WRITE ${RELEASE_TARGET} "${_contents}")
endforeach()
- file(GLOB DEBUG_TARGETS
- "${DEBUG_SHARE}/*[Tt]argets-debug.cmake"
- "${DEBUG_SHARE}/*[Cc]onfig-debug.cmake"
- "${DEBUG_SHARE}/*[Ee]xports-debug.cmake"
- )
- foreach(DEBUG_TARGET ${DEBUG_TARGETS})
- get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME)
-
- file(READ ${DEBUG_TARGET} _contents)
- string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}")
- string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}")
- string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}")
- string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}")
- file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/${DEBUG_TARGET_NAME} "${_contents}")
-
- file(REMOVE ${DEBUG_TARGET})
- endforeach()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(GLOB DEBUG_TARGETS
+ "${DEBUG_SHARE}/*[Tt]argets-debug.cmake"
+ "${DEBUG_SHARE}/*[Cc]onfig-debug.cmake"
+ "${DEBUG_SHARE}/*[Ee]xports-debug.cmake"
+ )
+ foreach(DEBUG_TARGET ${DEBUG_TARGETS})
+ get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME)
+
+ file(READ ${DEBUG_TARGET} _contents)
+ string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}")
+ string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}")
+ string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}")
+ string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/${DEBUG_TARGET_NAME} "${_contents}")
+
+ file(REMOVE ${DEBUG_TARGET})
+ endforeach()
+ endif()
file(GLOB MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake")
foreach(MAIN_TARGET ${MAIN_TARGETS})
diff --git a/scripts/cmake/vcpkg_from_github.cmake b/scripts/cmake/vcpkg_from_github.cmake
index 5730ce39a..b71ab3838 100644
--- a/scripts/cmake/vcpkg_from_github.cmake
+++ b/scripts/cmake/vcpkg_from_github.cmake
@@ -54,19 +54,19 @@ function(vcpkg_from_github)
set(multipleValuesArgs)
cmake_parse_arguments(_vdud "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN})
- if(NOT _vdud_OUT_SOURCE_PATH)
+ if(NOT DEFINED _vdud_OUT_SOURCE_PATH)
message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.")
endif()
- if((_vdud_REF AND NOT _vdud_SHA512) OR (NOT _vdud_REF AND _vdud_SHA512))
+ if((DEFINED _vdud_REF AND NOT DEFINED _vdud_SHA512) OR (NOT DEFINED _vdud_REF AND DEFINED _vdud_SHA512))
message(FATAL_ERROR "SHA512 must be specified if REF is specified.")
endif()
- if(NOT _vdud_REPO)
+ if(NOT DEFINED _vdud_REPO)
message(FATAL_ERROR "The GitHub repository must be specified.")
endif()
- if(NOT _vdud_REF AND NOT _vdud_HEAD_REF)
+ if(NOT DEFINED _vdud_REF AND NOT DEFINED _vdud_HEAD_REF)
message(FATAL_ERROR "At least one of REF and HEAD_REF must be specified.")
endif()
@@ -90,7 +90,7 @@ function(vcpkg_from_github)
endif()
endmacro()
- if(VCPKG_USE_HEAD_VERSION AND NOT _vdud_HEAD_REF)
+ if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF)
message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.")
set(VCPKG_USE_HEAD_VERSION OFF)
endif()
diff --git a/scripts/fetchDependency.ps1 b/scripts/fetchDependency.ps1
index 2cc782feb..f62fe450c 100644
--- a/scripts/fetchDependency.ps1
+++ b/scripts/fetchDependency.ps1
@@ -1,6 +1,6 @@
[CmdletBinding()]
param(
- [string]$Dependency
+ [Parameter(Mandatory=$true)][string]$Dependency
)
$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
@@ -20,14 +20,13 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
if($Dependency -eq "cmake")
{
- $requiredVersion = "3.9.5"
- $downloadVersion = "3.9.5"
- $url = "https://cmake.org/files/v3.9/cmake-3.9.5-win32-x86.zip"
- $downloadPath = "$downloadsDir\cmake-3.9.5-win32-x86.zip"
- $expectedDownloadedFileHash = "dd3e183254c12f7c338d3edfa642f1ac84a763b8b9a2feabb4ad5fccece5dff9"
- $executableFromDownload = "$downloadsDir\cmake-3.9.5-win32-x86\bin\cmake.exe"
+ $requiredVersion = "3.10.0"
+ $downloadVersion = "3.10.0"
+ $url = "https://cmake.org/files/v3.10/cmake-3.10.0-win32-x86.zip"
+ $downloadPath = "$downloadsDir\cmake-3.10.0-win32-x86.zip"
+ $expectedDownloadedFileHash = "dce666e897f95a88d3eed6cddd1faa3f44179d519b33ca6065b385bbc7072419"
+ $executableFromDownload = "$downloadsDir\cmake-3.10.0-win32-x86\bin\cmake.exe"
$extractionType = $ExtractionType_ZIP
- $extractionFolder = $downloadsDir
}
elseif($Dependency -eq "nuget")
{
@@ -60,7 +59,6 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
# Therefore, choosing the cmd dir here as well.
$executableFromDownload = "$downloadsDir\MinGit-2.15.0-32-bit\cmd\git.exe"
$extractionType = $ExtractionType_ZIP
- $extractionFolder = "$downloadsDir\MinGit-2.15.0-32-bit"
}
elseif($Dependency -eq "installerbase")
{
@@ -71,7 +69,6 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
$expectedDownloadedFileHash = "f2ce23cf5cf9fc7ce409bdca49328e09a070c0026d3c8a04e4dfde7b05b83fe8"
$executableFromDownload = "$downloadsDir\QtInstallerFramework-win-x86\bin\installerbase.exe"
$extractionType = $ExtractionType_ZIP
- $extractionFolder = $downloadsDir
}
else
{
@@ -91,7 +88,8 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
{
if (-not (Test-Path $executableFromDownload))
{
- vcpkgExtractFile -File $downloadPath -Destination $extractionFolder
+ $outFilename = (Get-ChildItem $downloadPath).BaseName
+ vcpkgExtractFile -File $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename
}
}
elseif($extractionType -eq $ExtractionType_SELF_EXTRACTING_7Z)
diff --git a/scripts/findAnyMSBuildWithCppPlatformToolset.ps1 b/scripts/findAnyMSBuildWithCppPlatformToolset.ps1
index e58b58c04..46ba767b9 100644
--- a/scripts/findAnyMSBuildWithCppPlatformToolset.ps1
+++ b/scripts/findAnyMSBuildWithCppPlatformToolset.ps1
@@ -8,6 +8,11 @@ $withVSPath = $withVSPath -replace "\\$" # Remove potential trailing backslash
$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
$VisualStudioInstallationInstances = & $scriptsDir\findVisualStudioInstallationInstances.ps1
+if ($VisualStudioInstallationInstances -eq $null)
+{
+ throw "Could not find Visual Studio. VS2015 or VS2017 (with C++) needs to be installed."
+}
+
Write-Verbose "VS Candidates:`n`r$([system.String]::Join([Environment]::NewLine, $VisualStudioInstallationInstances))"
foreach ($instanceCandidateWithEOL in $VisualStudioInstallationInstances)
{
diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake
index b32f840d2..bc79b16ce 100644
--- a/scripts/get_triplet_environment.cmake
+++ b/scripts/get_triplet_environment.cmake
@@ -6,4 +6,6 @@ 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}") \ No newline at end of file
+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}")
diff --git a/scripts/internalCI.ps1 b/scripts/internalCI.ps1
index 16ce4fc7a..37f4f35a4 100644
--- a/scripts/internalCI.ps1
+++ b/scripts/internalCI.ps1
@@ -1,5 +1,7 @@
$ErrorActionPreference = "Stop"
+rm TEST-internal-ci.xml -errorAction SilentlyContinue
+
New-Item -type directory downloads -errorAction SilentlyContinue | Out-Null
./scripts/bootstrap.ps1
if (-not $?) { throw $? }
@@ -7,21 +9,14 @@ if (-not $?) { throw $? }
# Clear out any intermediate files from the previous build
if (Test-Path buildtrees)
{
- Get-ChildItem buildtrees/*/* | ? { $_.Name -ne "src" -and $_.Extension -ne ".log"} | Remove-Item -Recurse -Force
+ Get-ChildItem buildtrees/*/* | ? { $_.Name -ne "src" } | Remove-Item -Recurse -Force
}
# Purge any outdated packages
./vcpkg remove --outdated --recurse
if (-not $?) { throw $? }
-./vcpkg.exe install azure-storage-cpp cpprestsdk:x64-windows-static cpprestsdk:x86-uwp
-if (-not $?) { throw $? }
-
-./vcpkg.exe install bond cryptopp zlib expat sdl2 curl sqlite3 libuv protobuf:x64-windows sfml opencv:x64-windows uwebsockets uwebsockets:x64-windows-static
+./vcpkg.exe install azure-storage-cpp cpprestsdk:x64-windows-static cpprestsdk:x86-uwp `
+bond cryptopp zlib expat sdl2 curl sqlite3 libuv protobuf:x64-windows sfml opencv:x64-windows uwebsockets uwebsockets:x64-windows-static `
+opencv:x86-uwp boost:x86-uwp --keep-going "--x-xunit=TEST-internal-ci.xml"
if (-not $?) { throw $? }
-
-./vcpkg.exe install opencv:x86-uwp boost:x86-uwp
-if (-not $?) { throw $? }
-
-# ./vcpkg.exe install folly:x64-windows
-# if (-not $?) { throw $? }