mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
Re-work compiler target options
This commit is contained in:
parent
8c346e5f67
commit
fe9c56f591
|
|
@ -20,27 +20,42 @@ set(CMAKE_CONFIGURATION_TYPES
|
||||||
)
|
)
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||||
|
|
||||||
function(configure_msvc_target target)
|
function(configure_compiler_target target)
|
||||||
target_compile_options(${target} PRIVATE
|
# MSVC and compatible compilers (like Clang-cl)
|
||||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/W3>
|
if (MSVC)
|
||||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/W0>
|
target_compile_options(${target} PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:/MP>
|
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/W3>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:/FS>
|
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/W0>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:/GS>
|
$<$<COMPILE_LANGUAGE:C,CXX>:/MP>
|
||||||
$<$<COMPILE_LANGUAGE:CXX>:/EHsc>
|
$<$<COMPILE_LANGUAGE:C,CXX>:/FS>
|
||||||
$<$<COMPILE_LANGUAGE:CXX>:/GR>
|
$<$<COMPILE_LANGUAGE:C,CXX>:/GS>
|
||||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/Od>
|
$<$<COMPILE_LANGUAGE:CXX>:/EHsc>
|
||||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/GL /O2 /Oi /GT /GF>
|
$<$<COMPILE_LANGUAGE:CXX>:/GR>
|
||||||
)
|
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/Od>
|
||||||
endfunction()
|
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/O2 /Oi /GT /GF>
|
||||||
function(configure_clang_target target)
|
)
|
||||||
target_compile_options(${target} PRIVATE
|
endif()
|
||||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:-O0 -Wall>
|
|
||||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:-O2 -w -flto>
|
# MSVC
|
||||||
)
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
target_link_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
$<$<CONFIG:Release>:-flto>
|
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/GL>
|
||||||
)
|
)
|
||||||
|
target_link_options(${target} PRIVATE
|
||||||
|
$<$<CONFIG:Release>:/LTCG:incremental>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Clang
|
||||||
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||||
|
target_compile_options(${target} PRIVATE
|
||||||
|
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:-O0 -Wall>
|
||||||
|
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:-O2 -w -flto>
|
||||||
|
)
|
||||||
|
target_link_options(${target} PRIVATE
|
||||||
|
$<$<CONFIG:Release>:-flto>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,15 +39,8 @@ target_compile_definitions(Minecraft.Client PRIVATE
|
||||||
)
|
)
|
||||||
target_precompile_headers(Minecraft.Client PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:stdafx.h>")
|
target_precompile_headers(Minecraft.Client PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:stdafx.h>")
|
||||||
set_source_files_properties(compat_shims.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON) # This redefines internal MSVC CRT symbols which will cause an issue with PCH
|
set_source_files_properties(compat_shims.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON) # This redefines internal MSVC CRT symbols which will cause an issue with PCH
|
||||||
if(MSVC)
|
|
||||||
configure_msvc_target(Minecraft.Client)
|
configure_compiler_target(Minecraft.Client)
|
||||||
target_link_options(Minecraft.Client PRIVATE
|
|
||||||
$<$<CONFIG:Release>:/LTCG:incremental>
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
||||||
configure_clang_target(Minecraft.Client)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_target_properties(Minecraft.Client PROPERTIES
|
set_target_properties(Minecraft.Client PROPERTIES
|
||||||
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>"
|
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>"
|
||||||
|
|
@ -83,10 +76,13 @@ endforeach()
|
||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/AssetCopyTargets.cmake")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/AssetCopyTargets.cmake")
|
||||||
setup_asset_copy_targets()
|
setup_asset_copy_targets()
|
||||||
|
|
||||||
|
# This is needed for VS to find the script, command line seems to work without it
|
||||||
|
set(COPY_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyAssets.cmake")
|
||||||
|
|
||||||
# Copy redist files
|
# Copy redist files
|
||||||
add_custom_target(CopyRedist ALL
|
add_custom_target(CopyRedist ALL
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
"-DCOPY_SOURCE=${CMAKE_SOURCE_DIR}/x64/Release"
|
"-DCOPY_SOURCE=${CMAKE_CURRENT_SOURCE_DIR}/Windows64/Iggy/lib/redist64" # This will copy the windows redist regardless of platform
|
||||||
"-DCOPY_DEST=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>"
|
"-DCOPY_DEST=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>"
|
||||||
-P "${COPY_SCRIPT}"
|
-P "${COPY_SCRIPT}"
|
||||||
COMMENT "Copying redist files..."
|
COMMENT "Copying redist files..."
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,5 @@ target_compile_definitions(Minecraft.World PRIVATE
|
||||||
_LIB
|
_LIB
|
||||||
)
|
)
|
||||||
target_precompile_headers(Minecraft.World PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:stdafx.h>")
|
target_precompile_headers(Minecraft.World PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:stdafx.h>")
|
||||||
if(MSVC)
|
|
||||||
configure_msvc_target(Minecraft.World)
|
configure_compiler_target(Minecraft.World)
|
||||||
endif()
|
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
||||||
configure_clang_target(Minecraft.World)
|
|
||||||
endif()
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue