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}/$/" ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/${CMAKE_VS_PLATFORM_NAME}/$/" ) 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 "$<$:" "NOMINMAX;" "_CONSOLE;" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "WIN32;" "UNICODE;" "_UNICODE" ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "NOMINMAX;" "_CONSOLE;" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "WIN32;" "UNICODE;" "_UNICODE" ) endif() ################################################################################ # Compile and link options ################################################################################ if(MSVC) if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_compile_options(${PROJECT_NAME} PRIVATE $<$: /Od > $<$: /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 $<$: /Od > $<$: /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 $<$: /OPT:REF; /OPT:ICF > /DEBUG; /SUBSYSTEM:WINDOWS; /INCREMENTAL ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_link_options(${PROJECT_NAME} PRIVATE $<$: /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()