From 31950890c939862f79c817053c106bf711c63a64 Mon Sep 17 00:00:00 2001 From: rtk0c Date: Tue, 30 Mar 2021 19:40:11 -0700 Subject: Product items and misc stuff --- core/CMakeLists.txt | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'core/CMakeLists.txt') diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index d8e9db1..f71cdd4 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -17,7 +17,7 @@ endif() function(add_source_group GROUP_NAME) set(${GROUP_NAME} ${ARGN} PARENT_SCOPE) set_source_files_properties(${ARGN} - PROPERTIES + PROPERTIES UNITY_GROUP "${GROUP_NAME}" ) endfunction() @@ -35,6 +35,7 @@ set(ENTRYPOINT_MODULE_SOURCES add_source_group(MODEL_MODULE_SOURCES src/Model/GlobalStates.cpp + src/Model/Items.cpp src/Model/Project.cpp src/Model/Stock.cpp ) @@ -136,15 +137,32 @@ function(add_executable_variant TARGET_NAME) endif() if(WIN32) - # No console window when targetting windows - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + # No console window when targeting windows + function(handle_gnu_style_compiler) # Supposedly the flag -mwindows would automatically make the executable use GUI subsystem # But, when subsystem is set to GUI, linker will only search WinMain and wWinMain but not the standard main (it seems like) # so creating GUI executable fails and the linker silently reverts to the default, CUI subsystem target_link_options(${TARGET_NAME} PRIVATE -Wl,-subsystem:windows) target_link_options(${TARGET_NAME} PRIVATE -Wl,-entry:mainCRTStartup) - elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + endfunction() + + function(handle_msvc_style_compiler) target_link_options(${TARGET_NAME} PRIVATE /SUBSYSTEM:windows /ENTRY:mainCRTStartup) + endfunction() + + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # GCC (MinGW) + handle_gnu_style_compiler() + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") + # MSVC-style argument clang (clang-cl.exe) + handle_msvc_style_compiler() + else() + # GNU-style argument clang (clang.exe and clang++.exe) + handle_gnu_style_compiler() + endif() + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + handle_msvc_style_compiler() endif() endif() -- cgit v1.2.3-70-g09d2