summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-02-02 20:01:50 (GMT)
committerBrad King <brad.king@kitware.com>2021-02-02 20:02:08 (GMT)
commit8d379e7406dc6fc5b824cf9a286ee52360379b11 (patch)
tree15d5f1572f67439e161f183bbeaff6fe7ed31621 /Tests
parent7cbaf6d87a9fe5bce98d7fad5cf7bc999fc4dc15 (diff)
downloadCMake-8d379e7406dc6fc5b824cf9a286ee52360379b11.zip
CMake-8d379e7406dc6fc5b824cf9a286ee52360379b11.tar.gz
CMake-8d379e7406dc6fc5b824cf9a286ee52360379b11.tar.bz2
Revert "PCH: Remove restrictions for REUSE_FROM signature for MSVC"
This reverts commit 9f060971411aca979807f70307d8b9fe1b43ff24. It was merged accidentally.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/PrecompileHeaders/PchReuseFromObjLib.cmake131
-rw-r--r--Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake1
2 files changed, 0 insertions, 132 deletions
diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFromObjLib.cmake b/Tests/RunCMake/PrecompileHeaders/PchReuseFromObjLib.cmake
deleted file mode 100644
index ba504a3..0000000
--- a/Tests/RunCMake/PrecompileHeaders/PchReuseFromObjLib.cmake
+++ /dev/null
@@ -1,131 +0,0 @@
-cmake_minimum_required(VERSION 3.18)
-
-project(PchReuseFromObjLib)
-
-set(CMAKE_PCH_WARN_INVALID OFF)
-
-if(CMAKE_CXX_COMPILE_OPTIONS_USE_PCH)
- add_definitions(-DHAVE_PCH_SUPPORT)
-endif()
-
-######################################################################
-
-file(WRITE ${CMAKE_BINARY_DIR}/CONFIG/config.hxx "/*empty*/\n")
-
-file(WRITE ${CMAKE_BINARY_DIR}/pch.cxx [=[
-void nothing()
-{
-}
-]=])
-
-file(WRITE ${CMAKE_BINARY_DIR}/string.hxx [=[
-#include <string.h>
-
-namespace std {
- struct string
- {
- char storage[20];
-
- string(const char* s) {
- strcpy(storage, s);
- }
-
- const char* c_str() const {
- return storage;
- }
- };
-}
-]=])
-
-add_library(pch-generator OBJECT ${CMAKE_BINARY_DIR}/pch.cxx)
-set_property(TARGET pch-generator PROPERTY POSITION_INDEPENDENT_CODE ON)
-target_precompile_headers(pch-generator PRIVATE ${CMAKE_BINARY_DIR}/string.hxx)
-
-target_include_directories(pch-generator PRIVATE ${CMAKE_BINARY_DIR}/CONFIG)
-
-######################################################################
-
-file(WRITE ${CMAKE_BINARY_DIR}/message.cxx [=[
-#include "message.hxx"
-
-#ifndef HAVE_PCH_SUPPORT
- #include "string.hxx"
-#endif
-
-const char* message()
-{
- static std::string greeting("hi there");
- return greeting.c_str();
-}
-]=])
-
-file(WRITE ${CMAKE_BINARY_DIR}/message.hxx [=[
-#include "config.hxx"
-#ifdef WIN32_BUILD_SHARED
- #ifdef BUILD_LIBRARY
- #define MESSAGE_EXPORT __declspec(dllexport)
- #else
- #define MESSAGE_EXPORT __declspec(dllimport)
- #endif
-#else
- #define MESSAGE_EXPORT
-#endif
-
-MESSAGE_EXPORT const char* message();
-]=])
-
-######################################################################
-
-file(WRITE ${CMAKE_BINARY_DIR}/main.cxx [=[
-#include "message.hxx"
-#include <string.h>
-
-int main()
-{
- return strcmp(message(), "hi there");
-}
-]=])
-
-######################################################################
-
-enable_testing()
-
-function(add_library_and_executable type)
- add_library(message_${type} ${type} ${CMAKE_BINARY_DIR}/message.cxx)
- target_precompile_headers(message_${type} REUSE_FROM pch-generator)
-
- set_property(TARGET message_${type} PROPERTY POSITION_INDEPENDENT_CODE ON)
- set_property(TARGET message_${type} PROPERTY DEFINE_SYMBOL "")
-
- if (WIN32 AND type STREQUAL "SHARED")
- file(WRITE ${CMAKE_BINARY_DIR}/SHARED/config.hxx [=[
- #define BUILD_LIBRARY
- #define WIN32_BUILD_SHARED
- ]=])
- target_include_directories(message_${type} PRIVATE ${CMAKE_BINARY_DIR}/SHARED)
-
- # Workaround for VS2008, the compiler fails with
- # c1xx : fatal error C1083: Cannot open source file: '_WINDLL': No such file or directory
- file(WRITE ${CMAKE_BINARY_DIR}/_WINDLL "/*empty*/\n")
- else()
- target_include_directories(message_${type} PRIVATE ${CMAKE_BINARY_DIR}/CONFIG)
- endif()
-
- add_executable(main_${type} ${CMAKE_BINARY_DIR}/main.cxx)
- target_include_directories(main_${type} PRIVATE ${CMAKE_BINARY_DIR})
-
- if (WIN32 AND type STREQUAL "SHARED")
- file(WRITE ${CMAKE_BINARY_DIR}/main_SHARED/config.hxx "#define WIN32_BUILD_SHARED\n")
- target_include_directories(main_${type} PRIVATE ${CMAKE_BINARY_DIR}/main_SHARED)
- else()
- target_include_directories(main_${type} PRIVATE ${CMAKE_BINARY_DIR}/CONFIG)
- endif()
-
- target_link_libraries(main_${type} PRIVATE message_${type})
-
- add_test(NAME main_${type} COMMAND main_${type})
-endfunction()
-
-foreach(type OBJECT STATIC SHARED)
- add_library_and_executable(${type})
-endforeach()
diff --git a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake
index a5a3770..74670ba 100644
--- a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake
+++ b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake
@@ -26,4 +26,3 @@ if(RunCMake_GENERATOR MATCHES "Make|Ninja")
run_cmake(PchInstantiateTemplates)
endif()
endif()
-run_test(PchReuseFromObjLib)