From 9870b093b58f4186998da7d11fc238261fd16e10 Mon Sep 17 00:00:00 2001 From: Pascal Palenda <pascal.palenda@akustik.rwth-aachen.de> Date: Mon, 13 Feb 2023 14:38:30 +0100 Subject: [PATCH] Add common settings for initializing a project --- src/Index.cmake | 2 ++ src/InitProject.cmake | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/InitProject.cmake diff --git a/src/Index.cmake b/src/Index.cmake index b1585cf..5c46147 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 0000000..89fee24 --- /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 () -- GitLab