Merge topic 'win32-executable-genex'

3ef0c40962 WIN32_EXECUTABLE: Add support for generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5146
This commit is contained in:
Brad King
2020-08-25 14:31:44 +00:00
committed by Kitware Robot
20 changed files with 118 additions and 12 deletions
+4
View File
@@ -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)
+5
View File
@@ -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>)
@@ -0,0 +1,9 @@
namespace CSharpWin32GenEx
{
class CSharpWin32GenEx
{
public static void Main(string[] args)
{
}
}
}
+4
View File
@@ -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()
+3
View File
@@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.18)
project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.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()
@@ -0,0 +1 @@
include(Win32GenEx.cmake)
@@ -0,0 +1 @@
include(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>)
+14
View File
@@ -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