aboutsummaryrefslogtreecommitdiff
path: root/scripts/cmake
diff options
context:
space:
mode:
authorWimok Nupphiboon <wimok.mok@gmail.com>2018-04-13 09:48:50 +0700
committerWimok Nupphiboon <wimok.mok@gmail.com>2018-04-13 09:48:50 +0700
commit00cdc0b10a089c6c3763f8e3c7847efac909e3fd (patch)
treedbe3d517060d68a06e7b0ac58104b0d7ea8547b6 /scripts/cmake
parent30b56c86148babd61eb6c7c2807421bdcd8d3c13 (diff)
parentdc207a2c891fe6deb2710ccde0abf48078f64fcd (diff)
downloadvcpkg-00cdc0b10a089c6c3763f8e3c7847efac909e3fd.tar.gz
vcpkg-00cdc0b10a089c6c3763f8e3c7847efac909e3fd.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'scripts/cmake')
-rw-r--r--scripts/cmake/vcpkg_build_cmake.cmake28
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake1
-rw-r--r--scripts/cmake/vcpkg_find_acquire_program.cmake13
3 files changed, 36 insertions, 6 deletions
diff --git a/scripts/cmake/vcpkg_build_cmake.cmake b/scripts/cmake/vcpkg_build_cmake.cmake
index 630662588..41415d9a8 100644
--- a/scripts/cmake/vcpkg_build_cmake.cmake
+++ b/scripts/cmake/vcpkg_build_cmake.cmake
@@ -105,6 +105,7 @@ function(vcpkg_build_cmake)
if(out_contents MATCHES "LINK : fatal error LNK1102:" OR out_contents MATCHES " fatal error C1060: ")
# The linker ran out of memory during execution. We will try continuing once more, with parallelism disabled.
+ message(STATUS "Restarting Build ${TARGET_TRIPLET}-${SHORT_BUILDTYPE} without parallelism because memory exceeded")
execute_process(
COMMAND ${CMAKE_COMMAND} --build . --config ${CONFIG} ${TARGET_PARAM} -- ${BUILD_ARGS} ${NO_PARALLEL_ARG}
OUTPUT_FILE "${LOGPREFIX}-out-1.log"
@@ -123,6 +124,33 @@ function(vcpkg_build_cmake)
list(APPEND LOGS "${LOGPREFIX}-err-1.log")
endif()
endif()
+ elseif(out_contents MATCHES ": No such file or directory")
+ # WSL workaround - WSL occassionally fails with no such file or directory. Detect if we are running in WSL and restart.
+ execute_process(COMMAND "uname" "-r"
+ OUTPUT_VARIABLE UNAME_R ERROR_VARIABLE UNAME_R
+ OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE)
+
+ if (UNAME_R MATCHES "Microsoft")
+ message(STATUS "Restarting Build ${TARGET_TRIPLET}-${SHORT_BUILDTYPE} because of (potential) wsl subsystem issue.")
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} --build . --config ${CONFIG} ${TARGET_PARAM} -- ${BUILD_ARGS}
+ OUTPUT_FILE "${LOGPREFIX}-out-1.log"
+ ERROR_FILE "${LOGPREFIX}-err-1.log"
+ RESULT_VARIABLE error_code
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${SHORT_BUILDTYPE})
+
+ if(error_code)
+ file(READ "${LOGPREFIX}-out-1.log" out_contents)
+ file(READ "${LOGPREFIX}-err-1.log" err_contents)
+
+ if(out_contents)
+ list(APPEND LOGS "${LOGPREFIX}-out-1.log")
+ endif()
+ if(err_contents)
+ list(APPEND LOGS "${LOGPREFIX}-err-1.log")
+ endif()
+ endif()
+ endif()
endif()
if(error_code)
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index 3a3a88515..3e0922428 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -165,6 +165,7 @@ function(vcpkg_configure_cmake)
list(APPEND _csc_OPTIONS
"-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}"
+ "-DVCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}"
"-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
"-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
"-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON"
diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake
index ef0e1584f..30ecb0573 100644
--- a/scripts/cmake/vcpkg_find_acquire_program.cmake
+++ b/scripts/cmake/vcpkg_find_acquire_program.cmake
@@ -116,7 +116,7 @@ function(vcpkg_find_acquire_program VAR)
if(CMAKE_HOST_WIN32)
set(PATHS "${DOWNLOADS}/tools/ninja/${SUBDIR}")
else()
- set(PATHS "${DOWNLOADS}/tools/${SUBDIR}")
+ set(PATHS "${DOWNLOADS}/tools/${SUBDIR}-linux")
endif()
set(BREW_PACKAGE_NAME "ninja")
set(APT_PACKAGE_NAME "ninja-build")
@@ -218,19 +218,20 @@ function(vcpkg_find_acquire_program VAR)
FILENAME ${ARCHIVE}
)
- file(MAKE_DIRECTORY ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR})
+ set(PROG_PATH_SUBDIR "${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}")
+ file(MAKE_DIRECTORY ${PROG_PATH_SUBDIR})
if(DEFINED NOEXTRACT)
if(DEFINED _vfa_RENAME)
- file(INSTALL ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR} RENAME ${_vfa_RENAME})
+ file(INSTALL ${ARCHIVE_PATH} DESTINATION ${PROG_PATH_SUBDIR} RENAME ${_vfa_RENAME})
else()
- file(COPY ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR})
+ file(COPY ${ARCHIVE_PATH} DESTINATION ${PROG_PATH_SUBDIR})
endif()
else()
get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} EXT)
string(TOLOWER "${ARCHIVE_EXTENSION}" ARCHIVE_EXTENSION)
if(ARCHIVE_EXTENSION STREQUAL ".msi")
file(TO_NATIVE_PATH "${ARCHIVE_PATH}" ARCHIVE_NATIVE_PATH)
- file(TO_NATIVE_PATH "${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}" DESTINATION_NATIVE_PATH)
+ file(TO_NATIVE_PATH "${PROG_PATH_SUBDIR}" DESTINATION_NATIVE_PATH)
execute_process(
COMMAND msiexec /a ${ARCHIVE_NATIVE_PATH} /qn TARGETDIR=${DESTINATION_NATIVE_PATH}
WORKING_DIRECTORY ${DOWNLOADS}
@@ -238,7 +239,7 @@ function(vcpkg_find_acquire_program VAR)
else()
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzf ${ARCHIVE_PATH}
- WORKING_DIRECTORY ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}
+ WORKING_DIRECTORY ${PROG_PATH_SUBDIR}
)
endif()
endif()