add cmake support
This commit is contained in:
231
SimulatorTester/CMakeLists.txt
Normal file
231
SimulatorTester/CMakeLists.txt
Normal file
@@ -0,0 +1,231 @@
|
||||
set(PROJECT_NAME SimulationsTester)
|
||||
|
||||
################################################################################
|
||||
# Source groups
|
||||
################################################################################
|
||||
set(Sources
|
||||
"PublicMassSpringSystemTests.cpp"
|
||||
)
|
||||
source_group("Sources" FILES ${Sources})
|
||||
|
||||
set(ALL_FILES
|
||||
${Sources}
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Target
|
||||
################################################################################
|
||||
add_library(${PROJECT_NAME} SHARED ${ALL_FILES})
|
||||
|
||||
use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}")
|
||||
set(ROOT_NAMESPACE SimulationsTester)
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
VS_GLOBAL_KEYWORD "Win32Proj"
|
||||
)
|
||||
################################################################################
|
||||
# Output directory
|
||||
################################################################################
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/${CMAKE_VS_PLATFORM_NAME}/$<CONFIG>/"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/${CMAKE_VS_PLATFORM_NAME}/$<CONFIG>/"
|
||||
)
|
||||
endif()
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
endif()
|
||||
################################################################################
|
||||
# Include directories
|
||||
################################################################################
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
"$ENV{VCInstallDir}UnitTest/include;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/Simulations;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/DirectXTK/Inc;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/DXUT11/Core;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/DXUT11/Optional;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/Effects11/inc;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/AntTweakBar/include"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
"$ENV{VCInstallDir}UnitTest/include;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/Simulations;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/DirectXTK/Inc;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/DXUT11/Core;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/DXUT11/Optional;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/Effects11/inc;"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/home/kookroach/Documents/Uni/WS23-24/physX/game-physics/AntTweakBar/include"
|
||||
)
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
# Compile definitions
|
||||
################################################################################
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"NOMINMAX;"
|
||||
"_CONSOLE;"
|
||||
"_DEBUG"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG"
|
||||
">"
|
||||
"WIN32;"
|
||||
"UNICODE;"
|
||||
"_UNICODE"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"NOMINMAX;"
|
||||
"_CONSOLE;"
|
||||
"_DEBUG"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG"
|
||||
">"
|
||||
"WIN32;"
|
||||
"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
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
/O2;
|
||||
/Oi;
|
||||
/Gy
|
||||
>
|
||||
/W3;
|
||||
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
|
||||
${DEFAULT_CXX_EXCEPTION_HANDLING};
|
||||
/Y-
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
$<$<CONFIG:Debug>:
|
||||
/Od
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
/O2;
|
||||
/Oi;
|
||||
/Gy
|
||||
>
|
||||
/W3;
|
||||
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
|
||||
${DEFAULT_CXX_EXCEPTION_HANDLING};
|
||||
/Y-
|
||||
)
|
||||
endif()
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
target_link_options(${PROJECT_NAME} PRIVATE
|
||||
$<$<CONFIG:Release>:
|
||||
/OPT:REF;
|
||||
/OPT:ICF
|
||||
>
|
||||
/DEBUG;
|
||||
/SUBSYSTEM:WINDOWS;
|
||||
/INCREMENTAL
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_link_options(${PROJECT_NAME} PRIVATE
|
||||
$<$<CONFIG:Release>:
|
||||
/OPT:REF;
|
||||
/OPT:ICF
|
||||
>
|
||||
/DEBUG;
|
||||
/SUBSYSTEM:WINDOWS;
|
||||
/INCREMENTAL
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
# Dependencies
|
||||
################################################################################
|
||||
# Link with other targets.
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC
|
||||
AntTweakBar
|
||||
DirectXTK_Desktop_2022
|
||||
MakeSpriteFont
|
||||
DXUT
|
||||
DXUTOpt
|
||||
Effects11
|
||||
Simulations
|
||||
)
|
||||
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"D3DCompiler;"
|
||||
"Mf;"
|
||||
"mfuuid;"
|
||||
"Mfplat;"
|
||||
"Mfreadwrite;"
|
||||
"comctl32;"
|
||||
"kernel32;"
|
||||
"user32;"
|
||||
"gdi32;"
|
||||
"winspool;"
|
||||
"comdlg32;"
|
||||
"advapi32;"
|
||||
"shell32;"
|
||||
"ole32;"
|
||||
"oleaut32;"
|
||||
"uuid;"
|
||||
"odbc32;"
|
||||
"odbccp32"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"D3DCompiler;"
|
||||
"Mf;"
|
||||
"mfuuid;"
|
||||
"Mfplat;"
|
||||
"Mfreadwrite;"
|
||||
"comctl32;"
|
||||
"kernel32;"
|
||||
"user32;"
|
||||
"gdi32;"
|
||||
"winspool;"
|
||||
"comdlg32;"
|
||||
"advapi32;"
|
||||
"shell32;"
|
||||
"ole32;"
|
||||
"oleaut32;"
|
||||
"uuid;"
|
||||
"odbc32;"
|
||||
"odbccp32"
|
||||
)
|
||||
endif()
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC "${ADDITIONAL_LIBRARY_DEPENDENCIES}")
|
||||
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
target_link_directories(${PROJECT_NAME} PUBLIC
|
||||
"$ENV{VCInstallDir}UnitTest/lib"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_link_directories(${PROJECT_NAME} PUBLIC
|
||||
"$ENV{VCInstallDir}UnitTest/lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user