summaryrefslogtreecommitdiffstats
path: root/Tests/Module/GenerateExportHeader
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-03-10 14:16:16 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-03-10 14:16:16 (GMT)
commit612a8b3bd8091372d9e50a81f05dcab8b31ae35c (patch)
treec6978e8f12830b4cab6f484d276ec447621072eb /Tests/Module/GenerateExportHeader
parente1b0dedc69a7d6eecaf1fe1d2324434aaac67c74 (diff)
parent491b41dd988915a3f00259fa704490dfa2f47dc9 (diff)
downloadCMake-612a8b3bd8091372d9e50a81f05dcab8b31ae35c.zip
CMake-612a8b3bd8091372d9e50a81f05dcab8b31ae35c.tar.gz
CMake-612a8b3bd8091372d9e50a81f05dcab8b31ae35c.tar.bz2
Merge topic 'vs-clang-cl'
491b41dd Help: Add notes for topic 'vs-clang-cl' ad6d27ac Tests: do not build PrecompiledHeader on Clang/C2 a0f0541f Tests: fix PDBDirectoryAndName on Clang/C2 3541af67 Tests: fix Plugin building on Clang/C2 1902c293 Tests: fix complexOneConfig building on Clang/C2 cab2ec11 Tests: fix Complex building on Clang/C2 ada3736c Tests: fix Module.GenerateExportHeader building on Clang/C2 123b7e13 Tests: fix AliasTarget building on Clang/C2 445d4d4b VS 14: Add flag map for -std= to CppLanguageStandard tag in project files 0a785eb4 Features: Clang has no cxx_decltype_incomplete_return_type in MSVC sim mode 2c2ec488 VS: in Clang/C2 toolset, setup correct compiler settings 37afe00f CMakeDetermineCompilerId: Add detection of clang.exe bundled with VS
Diffstat (limited to 'Tests/Module/GenerateExportHeader')
-rw-r--r--Tests/Module/GenerateExportHeader/CMakeLists.txt12
-rw-r--r--Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h41
-rw-r--r--Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h41
3 files changed, 93 insertions, 1 deletions
diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt b/Tests/Module/GenerateExportHeader/CMakeLists.txt
index 7fce330..8b94ca7 100644
--- a/Tests/Module/GenerateExportHeader/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt
@@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)
+cmake_policy(SET CMP0054 NEW)
project(GenerateExportHeader)
@@ -66,6 +67,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA")
endif ()
+# Clang/C2 in C++98 mode cannot properly handle some of MSVC headers
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+ CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+ set(CMAKE_CXX_STANDARD 11)
+endif()
+
add_subdirectory(lib_shared_and_static)
add_compiler_export_flags()
@@ -107,7 +114,10 @@ add_executable(GenerateExportHeader exportheader_test.cpp)
target_link_libraries(GenerateExportHeader ${link_libraries})
if (WIN32 OR CYGWIN)
- if(MSVC AND COMPILER_HAS_DEPRECATED)
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+ CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+ set(_platform Win32-Clang)
+ elseif(MSVC AND COMPILER_HAS_DEPRECATED)
set(_platform Win32)
elseif((MINGW OR CYGWIN) AND COMPILER_HAS_DEPRECATED)
set(_platform MinGW)
diff --git a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
new file mode 100644
index 0000000..d376631
--- /dev/null
+++ b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
@@ -0,0 +1,41 @@
+
+#ifndef LIBSHARED_EXPORT_H
+#define LIBSHARED_EXPORT_H
+
+#ifdef LIBSHARED_STATIC_DEFINE
+# define LIBSHARED_EXPORT
+# define LIBSHARED_NO_EXPORT
+#else
+# ifndef LIBSHARED_EXPORT
+# ifdef libshared_EXPORTS
+ /* We are building this library */
+# define LIBSHARED_EXPORT __declspec(dllexport)
+# else
+ /* We are using this library */
+# define LIBSHARED_EXPORT __declspec(dllimport)
+# endif
+# endif
+
+# ifndef LIBSHARED_NO_EXPORT
+# define LIBSHARED_NO_EXPORT
+# endif
+#endif
+
+#ifndef LIBSHARED_DEPRECATED
+# define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__))
+#endif
+
+#ifndef LIBSHARED_DEPRECATED_EXPORT
+# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
+#endif
+
+#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
+# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
+#endif
+
+#define DEFINE_NO_DEPRECATED 0
+#if DEFINE_NO_DEPRECATED
+# define LIBSHARED_NO_DEPRECATED
+#endif
+
+#endif
diff --git a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
new file mode 100644
index 0000000..fd021e9
--- /dev/null
+++ b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
@@ -0,0 +1,41 @@
+
+#ifndef LIBSTATIC_EXPORT_H
+#define LIBSTATIC_EXPORT_H
+
+#ifdef LIBSTATIC_STATIC_DEFINE
+# define LIBSTATIC_EXPORT
+# define LIBSTATIC_NO_EXPORT
+#else
+# ifndef LIBSTATIC_EXPORT
+# ifdef libstatic_EXPORTS
+ /* We are building this library */
+# define LIBSTATIC_EXPORT
+# else
+ /* We are using this library */
+# define LIBSTATIC_EXPORT
+# endif
+# endif
+
+# ifndef LIBSTATIC_NO_EXPORT
+# define LIBSTATIC_NO_EXPORT
+# endif
+#endif
+
+#ifndef LIBSTATIC_DEPRECATED
+# define LIBSTATIC_DEPRECATED __attribute__ ((__deprecated__))
+#endif
+
+#ifndef LIBSTATIC_DEPRECATED_EXPORT
+# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
+#endif
+
+#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
+# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
+#endif
+
+#define DEFINE_NO_DEPRECATED 0
+#if DEFINE_NO_DEPRECATED
+# define LIBSTATIC_NO_DEPRECATED
+#endif
+
+#endif