set(PROJECT_NAME Effects11) ################################################################################ # Source groups ################################################################################ set(no_group_source_files "EffectVariable.inl" ) source_group("" FILES ${no_group_source_files}) set(Sources "d3dxGlobal.cpp" "EffectAPI.cpp" "EffectLoad.cpp" "EffectNonRuntime.cpp" "EffectReflection.cpp" "EffectRuntime.cpp" ) source_group("Sources" FILES ${Sources}) set(ALL_FILES ${no_group_source_files} ${Sources} ) ################################################################################ # Target ################################################################################ add_library(${PROJECT_NAME} STATIC ${ALL_FILES}) target_precompile_headers(${PROJECT_NAME} PRIVATE "$<$:${CMAKE_CURRENT_SOURCE_DIR}/pchfx.h>" ) use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}") set(ROOT_NAMESPACE Effects11) 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 "Effects11d" TARGET_NAME_RELEASE "Effects11" ) endif() ################################################################################ # Output directory ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/Bin/Desktop_2022/${CMAKE_VS_PLATFORM_NAME}/$/" OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/Bin/Desktop_2022/${CMAKE_VS_PLATFORM_NAME}/$/" ) 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}/Binary;" "${CMAKE_CURRENT_SOURCE_DIR}/inc" ) endif() ################################################################################ # Compile definitions ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_DEBUG;" "DEBUG;" "PROFILE" ">" "$<$:" "NDEBUG" ">" "_WIN7_PLATFORM_UPDATE;" "WIN32;" "_WINDOWS;" "_LIB;" "D3DXFX_LARGEADDRESS_HANDLE;" "_WIN32_WINNT=0x0600;" "_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;" "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); /MACHINE:X86; /SUBSYSTEM:WINDOWS; /NXCOMPAT; /DYNAMICBASE ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_link_options(${PROJECT_NAME} PRIVATE /DEBUG:FULL ) endif() endif()