set(PROJECT_NAME DXUT) ################################################################################ # Source groups ################################################################################ set(no_group_source_files "dxerr.cpp" "DXUT.cpp" "DXUTDevice11.cpp" "DXUTmisc.cpp" ) source_group("" FILES ${no_group_source_files}) set(ALL_FILES ${no_group_source_files} ) ################################################################################ # Target ################################################################################ add_library(${PROJECT_NAME} STATIC ${ALL_FILES}) target_precompile_headers(${PROJECT_NAME} PRIVATE "$<$:${CMAKE_CURRENT_SOURCE_DIR}/DXUT.h>" ) use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}") set(ROOT_NAMESPACE DXUT) set_target_properties(${PROJECT_NAME} PROPERTIES VS_GLOBAL_KEYWORD "Win32Proj" ) ################################################################################ # Target name ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") set_target_properties(${PROJECT_NAME} PROPERTIES TARGET_NAME_DEBUG "DXUT" TARGET_NAME_RELEASE "DXUT" ) endif() ################################################################################ # Output directory ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/Bin/DirectXTK_2022/${CMAKE_VS_PLATFORM_NAME}/$/" OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/Bin/DirectXTK_2022/${CMAKE_VS_PLATFORM_NAME}/$/" ) endif() if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") set_target_properties(${PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE" ) endif() ################################################################################ # MSVC runtime library ################################################################################ get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY) if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") string(CONCAT "MSVC_RUNTIME_LIBRARY_STR" $<$: MultiThreadedDebugDLL > $<$: MultiThreadedDLL > $<$,$>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}> ) endif() set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR}) ################################################################################ # Include directories ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../../DirectXTK/Inc" ) endif() ################################################################################ # Compile definitions ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_DEBUG;" "DEBUG;" "PROFILE" ">" "$<$:" "NDEBUG" ">" "WIN32;" "_WINDOWS;" "_LIB;" "USE_DIRECT3D11_2;" "USE_DIRECTXTK;" "_WIN32_WINNT=0x0600;" "UNICODE;" "_UNICODE" ) endif() ################################################################################ # Compile and link options ################################################################################ if(MSVC) if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_compile_options(${PROJECT_NAME} PRIVATE $<$: /Od; /RTC1; /ZI > $<$: /O2; /Gy; ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT} > /Oi; /arch:SSE2; /W4; /fp:fast; ${DEFAULT_CXX_EXCEPTION_HANDLING}; ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_compile_options(${PROJECT_NAME} PRIVATE ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT}; ${DEFAULT_CXX_EXCEPTION_HANDLING} ) endif() if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_link_options(${PROJECT_NAME} PRIVATE $<$: /OPT:REF; /OPT:ICF > /DELAYLOAD:%(DelayLoadDLLs); /MANIFEST; /MACHINE:X86; /SUBSYSTEM:WINDOWS; /NXCOMPAT; /DYNAMICBASE ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_link_options(${PROJECT_NAME} PRIVATE /DEBUG:FULL ) endif() endif()