add cmake support

This commit is contained in:
2023-10-30 14:43:06 +01:00
parent 5348c6e002
commit d20e5f024e
44 changed files with 8229 additions and 0 deletions

158
Effects11/CMakeLists.txt Normal file
View File

@@ -0,0 +1,158 @@
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
"$<$<COMPILE_LANGUAGE:CXX>:${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}/$<CONFIG>/"
OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/Bin/Desktop_2022/${CMAKE_VS_PLATFORM_NAME}/$<CONFIG>/"
)
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"
$<$<CONFIG:Debug>:
MultiThreadedDebugDLL
>
$<$<CONFIG:Release>:
MultiThreadedDLL
>
$<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${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
"$<$<CONFIG:Debug>:"
"_DEBUG;"
"DEBUG;"
"PROFILE"
">"
"$<$<CONFIG:Release>:"
"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
$<$<CONFIG:Debug>:
/Od;
/RTC1;
/ZI
>
$<$<CONFIG:Release>:
/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
$<$<CONFIG:Release>:
/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()