diff --git a/modules/math_libs.cmake b/modules/math_libs.cmake index ac80156..6cbf582 100644 --- a/modules/math_libs.cmake +++ b/modules/math_libs.cmake @@ -18,7 +18,7 @@ # BLACS_IMPLEMENTATION # MKL_FLAG # -# Variables set:: +# Variables defined:: # # MATH_LIBS # BLAS_FOUND diff --git a/modules/safeguards.cmake b/modules/safeguards.cmake index bf6688d..a354892 100644 --- a/modules/safeguards.cmake +++ b/modules/safeguards.cmake @@ -1,19 +1,27 @@ -function(guard_against_in_source in_source_dir in_binary_dir) - if(${in_source_dir} STREQUAL ${in_binary_dir}) - message(FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.") - endif() -endfunction() +#.rst: +# +# Provides safeguards against in-source builds and bad build types. +# +# Variables used:: +# +# PROJECT_SOURCE_DIR +# PROJECT_BINARY_DIR +# CMAKE_BUILD_TYPE +# +# Example autocmake.cfg entry:: +# +# [safeguards] +# source: https://github.com/scisoft/autocmake/raw/master/modules/safeguards.cmake -function(guard_against_bad_build_types in_build_type) - string(TOLOWER "${in_build_type}" cmake_build_type_tolower) - string(TOUPPER "${in_build_type}" cmake_build_type_toupper) +if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR}) + message(FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.") +endif() - if( NOT cmake_build_type_tolower STREQUAL "debug" - AND NOT cmake_build_type_tolower STREQUAL "release" - AND NOT cmake_build_type_tolower STREQUAL "relwithdebinfo") - message(FATAL_ERROR "Unknown build type \"${in_build_type}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).") - endif() -endfunction() +string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_tolower) +string(TOUPPER "${CMAKE_BUILD_TYPE}" cmake_build_type_toupper) -guard_against_in_source(${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR}) -guard_against_bad_build_types(${CMAKE_BUILD_TYPE}) +if( NOT cmake_build_type_tolower STREQUAL "debug" + AND NOT cmake_build_type_tolower STREQUAL "release" + AND NOT cmake_build_type_tolower STREQUAL "relwithdebinfo") + message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).") +endif() diff --git a/modules/src.cmake b/modules/src.cmake index 09c6426..1abaddf 100644 --- a/modules/src.cmake +++ b/modules/src.cmake @@ -1 +1,5 @@ +#.rst: +# +# Adds ${PROJECT_SOURCE_DIR}/src as subdirectory containing CMakeLists.txt. + add_subdirectory(${PROJECT_SOURCE_DIR}/src) diff --git a/modules/static_linking.cmake b/modules/static_linking.cmake index 73bb2c4..0cace63 100644 --- a/modules/static_linking.cmake +++ b/modules/static_linking.cmake @@ -1,3 +1,20 @@ +#.rst: +# +# Enables static linking by appending corresponding compiler flags. +# +# Variables modified (provided the corresponding language is enabled):: +# +# CMAKE_Fortran_FLAGS +# CMAKE_C_FLAGS +# CMAKE_CXX_FLAGS +# +# Example autocmake.cfg entry:: +# +# [static_linking] +# source: https://github.com/scisoft/autocmake/raw/master/modules/static_linking.cmake +# docopt: --static Enable static linking [default: False]. +# define: '-DENABLE_STATIC_LINKING=%s' % arguments['--static'] + option(ENABLE_STATIC_LINKING "Enable static libraries linking" OFF) if(ENABLE_STATIC_LINKING)