aboutsummaryrefslogtreecommitdiff
path: root/scripts/detect_compiler
diff options
context:
space:
mode:
authorras0219 <robertallenschumacher@gmail.com>2020-06-22 14:14:36 -0700
committerGitHub <noreply@github.com>2020-06-22 14:14:36 -0700
commitaef838536ea3a08e3c1030ead553ca6456cc7fe3 (patch)
tree37f6b5437b0cbb2b5a3111a8fee391b9f0994297 /scripts/detect_compiler
parent2bf1f30debfac3f55c887855d82abd008f786a1a (diff)
downloadvcpkg-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/detect_compiler')
-rw-r--r--scripts/detect_compiler/CMakeLists.txt8
-rw-r--r--scripts/detect_compiler/portfile.cmake28
2 files changed, 36 insertions, 0 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}")