summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-08-25 14:31:44 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-08-25 14:33:00 (GMT)
commitf035ddec4feadfe4ed14a7fd0858f1e49e4c1979 (patch)
tree4dead417901430a9228a52026ee09ca92c193aca /Tests
parentea67dbc4cd3cf4d8c02ba4099b4e9600ef93b708 (diff)
parent3ef0c40962312a97d5a083c79ec563045fe28de3 (diff)
downloadCMake-f035ddec4feadfe4ed14a7fd0858f1e49e4c1979.zip
CMake-f035ddec4feadfe4ed14a7fd0858f1e49e4c1979.tar.gz
CMake-f035ddec4feadfe4ed14a7fd0858f1e49e4c1979.tar.bz2
Merge topic 'win32-executable-genex'
3ef0c40962 WIN32_EXECUTABLE: Add support for generator expressions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5146
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CMakeLists.txt4
-rw-r--r--Tests/CSharpWin32GenEx/CMakeLists.txt5
-rw-r--r--Tests/CSharpWin32GenEx/csharpwin32genex.cs9
-rw-r--r--Tests/RunCMake/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/Win32GenEx/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/Win32GenEx/RunCMakeTest.cmake28
-rw-r--r--Tests/RunCMake/Win32GenEx/Win32GenEx-debug.cmake1
-rw-r--r--Tests/RunCMake/Win32GenEx/Win32GenEx-release.cmake1
-rw-r--r--Tests/RunCMake/Win32GenEx/Win32GenEx.cmake7
-rw-r--r--Tests/RunCMake/Win32GenEx/main.c14
10 files changed, 76 insertions, 0 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index e4e09fa..5d4ffae 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -440,6 +440,10 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(CSharpOnly CSharpOnly)
ADD_TEST_MACRO(CSharpLinkToCxx CSharpLinkToCxx)
ADD_TEST_MACRO(CSharpLinkFromCxx CSharpLinkFromCxx)
+ ADD_TEST_MACRO(CSharpWin32GenEx CSharpWin32GenEx)
+ set_tests_properties(CSharpWin32GenEx PROPERTIES
+ PASS_REGULAR_EXPRESSION "Target \"CSharpWin32GenEx\" has a generator expression in its\n WIN32_EXECUTABLE property\\. This is not supported on managed executables\\."
+ )
endif()
ADD_TEST_MACRO(COnly COnly)
diff --git a/Tests/CSharpWin32GenEx/CMakeLists.txt b/Tests/CSharpWin32GenEx/CMakeLists.txt
new file mode 100644
index 0000000..f4a8d00
--- /dev/null
+++ b/Tests/CSharpWin32GenEx/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 3.18)
+project(CSharpWin32GenEx CSharp)
+
+add_executable(CSharpWin32GenEx csharpwin32genex.cs)
+set_property(TARGET CSharpWin32GenEx PROPERTY WIN32_EXECUTABLE $<1:1>)
diff --git a/Tests/CSharpWin32GenEx/csharpwin32genex.cs b/Tests/CSharpWin32GenEx/csharpwin32genex.cs
new file mode 100644
index 0000000..9892ee0
--- /dev/null
+++ b/Tests/CSharpWin32GenEx/csharpwin32genex.cs
@@ -0,0 +1,9 @@
+namespace CSharpWin32GenEx
+{
+ class CSharpWin32GenEx
+ {
+ public static void Main(string[] args)
+ {
+ }
+ }
+}
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index bee3875..65e8b0b 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -733,3 +733,7 @@ add_RunCMake_test("CTestCommandExpandLists")
add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID})
add_RunCMake_test("UnityBuild")
+
+if(WIN32)
+ add_RunCMake_test(Win32GenEx)
+endif()
diff --git a/Tests/RunCMake/Win32GenEx/CMakeLists.txt b/Tests/RunCMake/Win32GenEx/CMakeLists.txt
new file mode 100644
index 0000000..b646c4a
--- /dev/null
+++ b/Tests/RunCMake/Win32GenEx/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 3.18)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/Win32GenEx/RunCMakeTest.cmake b/Tests/RunCMake/Win32GenEx/RunCMakeTest.cmake
new file mode 100644
index 0000000..d5529b0
--- /dev/null
+++ b/Tests/RunCMake/Win32GenEx/RunCMakeTest.cmake
@@ -0,0 +1,28 @@
+include(RunCMake)
+
+if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Win32GenEx-build)
+ run_cmake(Win32GenEx)
+ set(RunCMake_TEST_NO_CLEAN 1)
+ run_cmake_command(Win32GenEx-debug-build ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR} --config Debug)
+ run_cmake_command(Win32GenEx-release-build ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR} --config Release)
+ unset(RunCMake_TEST_NO_CLEAN)
+else()
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Win32GenEx-debug-build)
+ set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
+ run_cmake(Win32GenEx-debug)
+ unset(RunCMake_TEST_OPTIONS)
+
+ set(RunCMake_TEST_NO_CLEAN 1)
+ run_cmake_command(Win32GenEx-debug-build ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR})
+ unset(RunCMake_TEST_NO_CLEAN)
+
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Win32GenEx-release-build)
+ set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release)
+ run_cmake(Win32GenEx-release)
+ unset(RunCMake_TEST_OPTIONS)
+
+ set(RunCMake_TEST_NO_CLEAN 1)
+ run_cmake_command(Win32GenEx-release-build ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR})
+ unset(RunCMake_TEST_NO_CLEAN)
+endif()
diff --git a/Tests/RunCMake/Win32GenEx/Win32GenEx-debug.cmake b/Tests/RunCMake/Win32GenEx/Win32GenEx-debug.cmake
new file mode 100644
index 0000000..74c5bd8
--- /dev/null
+++ b/Tests/RunCMake/Win32GenEx/Win32GenEx-debug.cmake
@@ -0,0 +1 @@
+include(Win32GenEx.cmake)
diff --git a/Tests/RunCMake/Win32GenEx/Win32GenEx-release.cmake b/Tests/RunCMake/Win32GenEx/Win32GenEx-release.cmake
new file mode 100644
index 0000000..74c5bd8
--- /dev/null
+++ b/Tests/RunCMake/Win32GenEx/Win32GenEx-release.cmake
@@ -0,0 +1 @@
+include(Win32GenEx.cmake)
diff --git a/Tests/RunCMake/Win32GenEx/Win32GenEx.cmake b/Tests/RunCMake/Win32GenEx/Win32GenEx.cmake
new file mode 100644
index 0000000..80f8b80
--- /dev/null
+++ b/Tests/RunCMake/Win32GenEx/Win32GenEx.cmake
@@ -0,0 +1,7 @@
+enable_language(C)
+
+add_executable(Win32GenEx main.c)
+set_target_properties(Win32GenEx PROPERTIES
+ WIN32_EXECUTABLE $<CONFIG:Release>
+ )
+target_compile_definitions(Win32GenEx PRIVATE $<$<CONFIG:Release>:USE_WIN32_MAIN>)
diff --git a/Tests/RunCMake/Win32GenEx/main.c b/Tests/RunCMake/Win32GenEx/main.c
new file mode 100644
index 0000000..1cf9f81
--- /dev/null
+++ b/Tests/RunCMake/Win32GenEx/main.c
@@ -0,0 +1,14 @@
+#ifdef USE_WIN32_MAIN
+# include <windows.h>
+
+int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
+ LPSTR lpCmdLine, int nShowCmd)
+{
+ return 0;
+}
+#else
+int main(void)
+{
+ return 0;
+}
+#endif