diff options
| author | ras0219 <robertallenschumacher@gmail.com> | 2020-06-22 14:14:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-22 14:14:36 -0700 |
| commit | aef838536ea3a08e3c1030ead553ca6456cc7fe3 (patch) | |
| tree | 37f6b5437b0cbb2b5a3111a8fee391b9f0994297 /scripts | |
| parent | 2bf1f30debfac3f55c887855d82abd008f786a1a (diff) | |
| download | vcpkg-aef838536ea3a08e3c1030ead553ca6456cc7fe3.tar.gz vcpkg-aef838536ea3a08e3c1030ead553ca6456cc7fe3.zip | |
[vcpkg] Track compiler information in ABI (#11654)
* [vcpkg] Refactor out abi_tags_from_pre_build_info()
* [vcpkg] Track Windows toolchain file in triplet hash
* [vcpkg] Improve error messages when constructing PreBuildInfo
* [vcpkg] Extract InstallPlanAction::BuildAbiInfo
* [vcpkg] Extract Build::EnvCache and private-impl VcpkgPaths
* [vcpkg] Enable compiler hash detection when binarycaching is enabled
* [vcpkg] Downgrade warning about missing ABI keys
When binarycaching is not enabled, this warning is spurious and provides no user value.
* [vcpkg] Cleanup
* [vcpkg] Refactor compiler tracking into triplet abi computation
Move several static global caches into VcpkgPaths/EnvCache.
Add feature flag 'compilertracking' to enable the new feature.
* [vcpkg] Refactor out PreBuildInfo::using_vcvars()
Move VcpkgTripletVar into build.cpp because it is not used outside that file.
* [vcpkg] Address some code analysis warnings
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/detect_compiler/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | scripts/detect_compiler/portfile.cmake | 28 | ||||
| -rw-r--r-- | scripts/ports.cmake | 7 |
3 files changed, 39 insertions, 4 deletions
diff --git a/scripts/detect_compiler/CMakeLists.txt b/scripts/detect_compiler/CMakeLists.txt new file mode 100644 index 000000000..5dc0889a6 --- /dev/null +++ b/scripts/detect_compiler/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.10)
+project(detect_compiler)
+
+file(SHA1 "${CMAKE_CXX_COMPILER}" CXX_HASH)
+file(SHA1 "${CMAKE_C_COMPILER}" C_HASH)
+string(SHA1 COMPILER_HASH "${C_HASH}${CXX_HASH}")
+
+message("#COMPILER_HASH#${COMPILER_HASH}")
diff --git a/scripts/detect_compiler/portfile.cmake b/scripts/detect_compiler/portfile.cmake new file mode 100644 index 000000000..16c760706 --- /dev/null +++ b/scripts/detect_compiler/portfile.cmake @@ -0,0 +1,28 @@ +set(LOGS
+ ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-out.log
+ ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-rel-out.log
+ ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-dbg-out.log
+)
+
+foreach(LOG IN LISTS LOGS)
+ file(REMOVE ${LOG})
+ if(EXISTS ${LOG})
+ message(FATAL_ERROR "Could not remove ${LOG}")
+ endif()
+endforeach()
+
+set(VCPKG_BUILD_TYPE release)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}"
+ PREFER_NINJA
+)
+
+foreach(LOG IN LISTS LOGS)
+ if(EXISTS ${LOG})
+ file(READ "${LOG}" _contents)
+ message("${_contents}")
+ return()
+ endif()
+endforeach()
+message(FATAL_ERROR "Could read logs: ${LOGS}")
diff --git a/scripts/ports.cmake b/scripts/ports.cmake index cd687026f..8c7c71d34 100644 --- a/scripts/ports.cmake +++ b/scripts/ports.cmake @@ -43,9 +43,6 @@ if(CMD MATCHES "^BUILD$") if(NOT EXISTS ${CURRENT_PORT_DIR}/portfile.cmake) message(FATAL_ERROR "Port is missing portfile: ${CURRENT_PORT_DIR}/portfile.cmake") endif() - if(NOT EXISTS ${CURRENT_PORT_DIR}/CONTROL) - message(FATAL_ERROR "Port is missing control file: ${CURRENT_PORT_DIR}/CONTROL") - endif() unset(PACKAGES_DIR) unset(BUILDTREES_DIR) @@ -74,7 +71,9 @@ if(CMD MATCHES "^BUILD$") include(${SCRIPTS}/cmake/vcpkg_common_definitions.cmake) include(${SCRIPTS}/cmake/vcpkg_common_functions.cmake) include(${CURRENT_PORT_DIR}/portfile.cmake) - include(${SCRIPTS}/build_info.cmake) + if(DEFINED PORT) + include(${SCRIPTS}/build_info.cmake) + endif() elseif(CMD MATCHES "^CREATE$") file(TO_NATIVE_PATH ${VCPKG_ROOT_DIR} NATIVE_VCPKG_ROOT_DIR) file(TO_NATIVE_PATH ${DOWNLOADS} NATIVE_DOWNLOADS) |
