set(PROJECT_NAME Simulations) ################################################################################ # Source groups ################################################################################ set(no_group_source_files "../readme.txt" ) source_group("" FILES ${no_group_source_files}) set(Headers "DrawingUtilitiesClass.h" "MassSpringSystemSimulator.h" "Simulator.h" "TemplateSimulator.h" "util/FFmpeg.h" "util/matrixbase.h" "util/quaternion.h" "util/timer.h" "util/util.h" "util/vectorbase.h" ) source_group("Headers" FILES ${Headers}) set(Sources "TemplateSimulator.cpp" "util/FFmpeg.cpp" "util/util.cpp" ) source_group("Sources" FILES ${Sources}) set(ALL_FILES ${no_group_source_files} ${Headers} ${Sources} ) ################################################################################ # Target ################################################################################ add_library(${PROJECT_NAME} STATIC ${ALL_FILES}) use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}") set(ROOT_NAMESPACE Simulations) 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 "${PROJECT_NAME}" TARGET_NAME_RELEASE "${PROJECT_NAME}" ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") set_target_properties(${PROJECT_NAME} PROPERTIES TARGET_NAME_DEBUG "${PROJECT_NAME}" TARGET_NAME_RELEASE "${PROJECT_NAME}" ) endif() ################################################################################ # 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}/$/" OUTPUT_DIRECTORY_RELEASE "${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}/$/" OUTPUT_DIRECTORY_RELEASE "${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 "${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 "${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 "$<$:" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "WIN32;" "NOMINMAX;" "_CONSOLE;" "UNICODE;" "_UNICODE" ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "WIN32;" "NOMINMAX;" "_CONSOLE;" "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 > /SUBSYSTEM:CONSOLE ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") target_link_options(${PROJECT_NAME} PRIVATE $<$: /OPT:REF; /OPT:ICF > /SUBSYSTEM:CONSOLE ) endif() endif() ################################################################################ # Dependencies ################################################################################ # Link with other targets. target_link_libraries(${PROJECT_NAME} PUBLIC AntTweakBar DirectXTK_Desktop_2022 DXUT DXUTOpt Effects11 ) 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}")