| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # Centralized CMake settings used across the V-Gears project.
- # Build verbosity default (can be overridden by caller)
- if(NOT DEFINED CMAKE_VERBOSE_MAKEFILE)
- set(CMAKE_VERBOSE_MAKEFILE OFF CACHE BOOL "Enable verbose makefile output" FORCE)
- endif()
- # C++ standard and basic compile settings
- if(NOT DEFINED CMAKE_CXX_STANDARD)
- set(CMAKE_CXX_STANDARD 14)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- endif()
- # Produce position independent code by default where relevant
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
- # Debug postfix for libraries
- if(NOT DEFINED CMAKE_DEBUG_POSTFIX)
- set(CMAKE_DEBUG_POSTFIX "_d")
- endif()
- # Set output directories for binaries and libraries
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lib)
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lib)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin_debug)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin_debug/lib)
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin_debug/lib)
- # Enable folders in IDEs like Visual Studio
- set_property(GLOBAL PROPERTY USE_FOLDERS ON)
- # Make custom CMake modules discoverable
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake")
- # Create directory for generated headers
- file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/generated")
- ## Helper: install default GNUInstallDirs if not available
- include(GNUInstallDirs OPTIONAL)
|