diff --git a/src/Index.cmake b/src/Index.cmake index b1585cf5a11b11209d35344e58a76933255727b3..5c46147cf95075dafb59733cf18b3e07170709ca 100644 --- a/src/Index.cmake +++ b/src/Index.cmake @@ -2,6 +2,8 @@ cmake_minimum_required (VERSION 3.20 FATAL_ERROR) include_guard () +include (${CMAKE_CURRENT_LIST_DIR}/InitProject.cmake) + # Check for CPM file (GLOB CPM_MODULE_LOCATION ${CMAKE_BINARY_DIR}/cmake/CPM*.cmake) diff --git a/src/InitProject.cmake b/src/InitProject.cmake new file mode 100644 index 0000000000000000000000000000000000000000..89fee240ce581cf8d3fd9c64a6895d2bd39a8e4d --- /dev/null +++ b/src/InitProject.cmake @@ -0,0 +1,33 @@ +include_guard () + +# init_project +# +# Sets common settings for a project. These include: +# +# - all debug builds will have the postfix `-d` +# - the default install directory will be `${CMAKE_CURRENT_BINARY_DIR}/dist` +# - all output directories will include the current configuration +# - IDE folders will be turned on for visual studio +macro (init_project) + set (CMAKE_DEBUG_POSTFIX "-d") + + # Set the install root folder if not specified by the user + if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set ( + CMAKE_INSTALL_PREFIX + ${CMAKE_CURRENT_BINARY_DIR}/dist + CACHE PATH "Install root directory" FORCE + ) + set (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OFF) + endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + + if (NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY AND WIN32) + set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/bin) + set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/lib) + set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/lib) + endif () + + if (CMAKE_GENERATOR MATCHES "Visual Studio") + set_property (GLOBAL PROPERTY USE_FOLDERS ON) + endif () +endmacro ()