style: format tools/cmake files
This commit is contained in:
		
							parent
							
								
									479a15bfd0
								
							
						
					
					
						commit
						3f5a85197a
					
				
					 3 changed files with 88 additions and 96 deletions
				
			
		|  | @ -1,157 +1,140 @@ | ||||||
| function (add_library_module libname) | function(add_library_module libname) | ||||||
|     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") |     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") | ||||||
|     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/public/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/public/" |          "${PUBLIC_INCLUDE_DIR}/${libname}" SYMBOLIC) | ||||||
|         "${PUBLIC_INCLUDE_DIR}/${libname}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
| 
 | 
 | ||||||
|     if ("${ARGN}" STREQUAL "") # Header only library |     if("${ARGN}" STREQUAL "") # Header only library | ||||||
|         message("Adding INTERFACE library ${libname}") |         message("Adding INTERFACE library ${libname}") | ||||||
|         add_library(${libname} INTERFACE) |         add_library(${libname} INTERFACE) | ||||||
|         target_include_directories(${libname} INTERFACE ${PUBLIC_INCLUDE_DIR}) |         target_include_directories(${libname} INTERFACE ${PUBLIC_INCLUDE_DIR}) | ||||||
| 
 | 
 | ||||||
|         target_link_libraries(${libname} INTERFACE std) |         target_link_libraries(${libname} INTERFACE std) | ||||||
| 
 | 
 | ||||||
|     else () # Compiled library |     else() # Compiled library | ||||||
|         set(source_files) |         set(source_files) | ||||||
|         set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") |         set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") | ||||||
|         foreach (source_file ${ARGN}) |         foreach(source_file ${ARGN}) | ||||||
|             list(APPEND source_files "${source_directory}/${source_file}") |             list(APPEND source_files "${source_directory}/${source_file}") | ||||||
|         endforeach () |         endforeach() | ||||||
| 
 | 
 | ||||||
|         message("Adding library ${libname} with source files: ${source_files}") |         message("Adding library ${libname} with source files: ${source_files}") | ||||||
|         add_library(${libname} ${source_files}) |         add_library(${libname} ${source_files}) | ||||||
| 
 | 
 | ||||||
|         set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") |         set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") | ||||||
|         file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") |         file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") | ||||||
|         file(CREATE_LINK |         file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/private/" | ||||||
|             "${CMAKE_CURRENT_SOURCE_DIR}/private/" |              "${PRIVATE_INCLUDE_DIR}/${libname}" SYMBOLIC) | ||||||
|             "${PRIVATE_INCLUDE_DIR}/${libname}" |  | ||||||
|             SYMBOLIC |  | ||||||
|         ) |  | ||||||
| 
 | 
 | ||||||
|         target_include_directories(${libname}  |         target_include_directories( | ||||||
|  |             ${libname} | ||||||
|             PUBLIC ${PUBLIC_INCLUDE_DIR} |             PUBLIC ${PUBLIC_INCLUDE_DIR} | ||||||
|             PRIVATE ${PRIVATE_INCLUDE_DIR} |             PRIVATE ${PRIVATE_INCLUDE_DIR}) | ||||||
|         ) |  | ||||||
| 
 | 
 | ||||||
|         target_link_libraries(${libname} PUBLIC std) |         target_link_libraries(${libname} PUBLIC std) | ||||||
|     endif () |     endif() | ||||||
| 
 | 
 | ||||||
| endfunction () | endfunction() | ||||||
| 
 | 
 | ||||||
| function (add_executable_module exename) | function(add_executable_module exename) | ||||||
|     set(source_files) |     set(source_files) | ||||||
|     set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") |     set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") | ||||||
|     foreach (source_file ${ARGN}) |     foreach(source_file ${ARGN}) | ||||||
|         list(APPEND source_files "${source_directory}/${source_file}") |         list(APPEND source_files "${source_directory}/${source_file}") | ||||||
|     endforeach () |     endforeach() | ||||||
| 
 | 
 | ||||||
|     message("Adding executable ${exename} with source files: ${source_files}") |     message("Adding executable ${exename} with source files: ${source_files}") | ||||||
| 
 | 
 | ||||||
|     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") |     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") | ||||||
|     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/public/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/public/" |          "${PUBLIC_INCLUDE_DIR}/${exename}" SYMBOLIC) | ||||||
|         "${PUBLIC_INCLUDE_DIR}/${exename}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
|     set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") |     set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") | ||||||
|     file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/private/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/private/" |          "${PRIVATE_INCLUDE_DIR}${exename}" SYMBOLIC) | ||||||
|         "${PRIVATE_INCLUDE_DIR}${exename}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
| 
 | 
 | ||||||
|     add_executable(${exename} ${source_files}) |     add_executable(${exename} ${source_files}) | ||||||
|     target_link_libraries(${exename} PRIVATE std) |     target_link_libraries(${exename} PRIVATE std) | ||||||
|     target_include_directories(${exename} PRIVATE ${PUBLIC_INCLUDE_DIR} ${PRIVATE_INCLUDE_DIR}) |     target_include_directories(${exename} PRIVATE ${PUBLIC_INCLUDE_DIR} | ||||||
| endfunction () |                                                   ${PRIVATE_INCLUDE_DIR}) | ||||||
|  | endfunction() | ||||||
| 
 | 
 | ||||||
| function (add_test_module target_lib_name) | function(add_test_module target_lib_name) | ||||||
|     if (NOT ${ENABLE_UNIT_TESTS}) |     if(NOT ${ENABLE_UNIT_TESTS}) | ||||||
|         return() |         return() | ||||||
|     endif () |     endif() | ||||||
| 
 | 
 | ||||||
|     set(source_files) |     set(source_files) | ||||||
|     set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") |     set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") | ||||||
|     foreach (source_file ${ARGN}) |     foreach(source_file ${ARGN}) | ||||||
|         list(APPEND source_files "${source_directory}/${source_file}") |         list(APPEND source_files "${source_directory}/${source_file}") | ||||||
|     endforeach () |     endforeach() | ||||||
| 
 | 
 | ||||||
|     message("Adding test executable ${target_lib_name}_tests with source files: ${source_files}") |     message( | ||||||
|  |         "Adding test executable ${target_lib_name}_tests with source files: ${source_files}" | ||||||
|  |     ) | ||||||
| 
 | 
 | ||||||
|     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") |     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") | ||||||
|     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/public/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/public/" |          "${PUBLIC_INCLUDE_DIR}/${target_lib_name}" SYMBOLIC) | ||||||
|         "${PUBLIC_INCLUDE_DIR}/${target_lib_name}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
|     set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") |     set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") | ||||||
|     file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/private/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/private/" |          "${PRIVATE_INCLUDE_DIR}/${target_lib_name}" SYMBOLIC) | ||||||
|         "${PRIVATE_INCLUDE_DIR}/${target_lib_name}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
| 
 | 
 | ||||||
|     add_executable(${target_lib_name}_tests ${source_files}) |     add_executable(${target_lib_name}_tests ${source_files}) | ||||||
|     target_link_libraries(${target_lib_name}_tests PRIVATE ${target_lib_name} std test) |     target_link_libraries(${target_lib_name}_tests PRIVATE ${target_lib_name} | ||||||
|     target_include_directories(${target_lib_name}_tests |                                                            std test) | ||||||
|  |     target_include_directories( | ||||||
|  |         ${target_lib_name}_tests | ||||||
|         PRIVATE ${PUBLIC_INCLUDE_DIR} |         PRIVATE ${PUBLIC_INCLUDE_DIR} | ||||||
|         PRIVATE ${PRIVATE_INCLUDE_DIR} |         PRIVATE ${PRIVATE_INCLUDE_DIR}) | ||||||
|     ) | endfunction() | ||||||
| endfunction () |  | ||||||
| 
 | 
 | ||||||
| function (add_fuzz_module target_lib_name) | function(add_fuzz_module target_lib_name) | ||||||
|     if (NOT ${ENABLE_FUZZ_TESTS}) |     if(NOT ${ENABLE_FUZZ_TESTS}) | ||||||
|         return() |         return() | ||||||
|     endif () |     endif() | ||||||
| 
 | 
 | ||||||
|     set(source_files) |     set(source_files) | ||||||
|     set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") |     set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private") | ||||||
|     foreach (source_file ${ARGN}) |     foreach(source_file ${ARGN}) | ||||||
|         list(APPEND source_files "${source_directory}/${source_file}") |         list(APPEND source_files "${source_directory}/${source_file}") | ||||||
|     endforeach () |     endforeach() | ||||||
| 
 | 
 | ||||||
|     message("Adding fuzz executable ${target_lib_name}_fuzz with source files: ${source_files}") |     message( | ||||||
|  |         "Adding fuzz executable ${target_lib_name}_fuzz with source files: ${source_files}" | ||||||
|  |     ) | ||||||
| 
 | 
 | ||||||
|     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") |     set(PUBLIC_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/public_includes") | ||||||
|     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PUBLIC_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/public/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/public/" |          "${PUBLIC_INCLUDE_DIR}/${target_lib_name}" SYMBOLIC) | ||||||
|         "${PUBLIC_INCLUDE_DIR}/${target_lib_name}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
|     set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") |     set(PRIVATE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/private_includes") | ||||||
|     file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") |     file(MAKE_DIRECTORY "${PRIVATE_INCLUDE_DIR}") | ||||||
|     file(CREATE_LINK |     file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/private/" | ||||||
|         "${CMAKE_CURRENT_SOURCE_DIR}/private/" |          "${PRIVATE_INCLUDE_DIR}/${target_lib_name}" SYMBOLIC) | ||||||
|         "${PRIVATE_INCLUDE_DIR}/${target_lib_name}" |  | ||||||
|         SYMBOLIC |  | ||||||
|     ) |  | ||||||
| 
 | 
 | ||||||
|     add_executable(${target_lib_name}_fuzz ${source_files}) |     add_executable(${target_lib_name}_fuzz ${source_files}) | ||||||
|     target_link_libraries(${target_lib_name}_fuzz PRIVATE ${target_lib_name} std fuzz_test) |     target_link_libraries(${target_lib_name}_fuzz PRIVATE ${target_lib_name} | ||||||
|  |                                                           std fuzz_test) | ||||||
|     target_link_options(${target_lib_name}_fuzz PRIVATE -fsanitize=fuzzer) |     target_link_options(${target_lib_name}_fuzz PRIVATE -fsanitize=fuzzer) | ||||||
|     target_compile_options(${target_lib_name}_fuzz PRIVATE -fsanitize=fuzzer) |     target_compile_options(${target_lib_name}_fuzz PRIVATE -fsanitize=fuzzer) | ||||||
|     target_include_directories(${target_lib_name}_fuzz |     target_include_directories( | ||||||
|  |         ${target_lib_name}_fuzz | ||||||
|         PRIVATE ${PUBLIC_INCLUDE_DIR} |         PRIVATE ${PUBLIC_INCLUDE_DIR} | ||||||
|         PRIVATE ${PRIVATE_INCLUDE_DIR} |         PRIVATE ${PRIVATE_INCLUDE_DIR}) | ||||||
|     ) | endfunction() | ||||||
| endfunction () |  | ||||||
| 
 | 
 | ||||||
| function (add_option option help) | function(add_option option help) | ||||||
|     option(${option} ${help}) |     option(${option} ${help}) | ||||||
| 
 | 
 | ||||||
|     if (${option}) |     if(${option}) | ||||||
|         message(STATUS "${option}: ON") |         message(STATUS "${option}: ON") | ||||||
|         add_compile_definitions(${option}=1) |         add_compile_definitions(${option}=1) | ||||||
|     else () |     else() | ||||||
|         message(STATUS "${option}: OFF") |         message(STATUS "${option}: OFF") | ||||||
|     endif () |     endif() | ||||||
| endfunction () | endfunction() | ||||||
|  |  | ||||||
|  | @ -1,32 +1,41 @@ | ||||||
| add_option(ENABLE_UNIT_TESTS "Enables the building of the unit test modules") | add_option(ENABLE_UNIT_TESTS "Enables the building of the unit test modules") | ||||||
| add_option(ENABLE_FUZZ_TESTS "Enables the building of the fuzz test modules") | add_option(ENABLE_FUZZ_TESTS "Enables the building of the fuzz test modules") | ||||||
| add_option(ENABLE_STATIC_ANALYSIS "Makes the clang-tidy checks mandatory for compilation") | add_option(ENABLE_STATIC_ANALYSIS | ||||||
| add_option(ENABLE_LLVM_COVERAGE "Enables the code coverage instrumentation for clang") |            "Makes the clang-tidy checks mandatory for compilation") | ||||||
|  | add_option(ENABLE_LLVM_COVERAGE | ||||||
|  |            "Enables the code coverage instrumentation for clang") | ||||||
| 
 | 
 | ||||||
| if (ENABLE_STATIC_ANALYSIS) | if(ENABLE_STATIC_ANALYSIS) | ||||||
|     set(CMAKE_CXX_CLANG_TIDY "clang-tidy;--warnings-as-errors=*;--allow-no-checks") |     set(CMAKE_CXX_CLANG_TIDY | ||||||
| endif () |         "clang-tidy;--warnings-as-errors=*;--allow-no-checks") | ||||||
|  | endif() | ||||||
| 
 | 
 | ||||||
| if(ENABLE_LLVM_COVERAGE) | if(ENABLE_LLVM_COVERAGE) | ||||||
|     include(CheckCXXSourceCompiles) |     include(CheckCXXSourceCompiles) | ||||||
| 
 | 
 | ||||||
|     if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") |     if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||||
|         message(FATAL_ERROR "ENABLE_LLVM_COVERAGE only supports the clang compiler") |         message( | ||||||
|     endif () |             FATAL_ERROR "ENABLE_LLVM_COVERAGE only supports the clang compiler") | ||||||
|  |     endif() | ||||||
| 
 | 
 | ||||||
|     # Check for libc++ |     # Check for libc++ | ||||||
|     check_cxx_source_compiles(" |     check_cxx_source_compiles( | ||||||
|  |         " | ||||||
|         #include <string> |         #include <string> | ||||||
|         #ifdef _LIBCPP_VERSION |         #ifdef _LIBCPP_VERSION | ||||||
|         int main() { return 0; } |         int main() { return 0; } | ||||||
|         #else |         #else | ||||||
|         #error Not using libc++ |         #error Not using libc++ | ||||||
|         #endif |         #endif | ||||||
|     " USING_LIBCXX) |     " | ||||||
|  |         USING_LIBCXX) | ||||||
|     if(NOT USING_LIBCXX) |     if(NOT USING_LIBCXX) | ||||||
|         message(FATAL_ERROR "ENABLE_LLVM_COVERAGE requires libc++, please compile with -stdlib=libc++") |         message( | ||||||
|  |             FATAL_ERROR | ||||||
|  |                 "ENABLE_LLVM_COVERAGE requires libc++, please compile with -stdlib=libc++" | ||||||
|  |         ) | ||||||
|     endif() |     endif() | ||||||
| 
 | 
 | ||||||
|     add_compile_options(-fprofile-instr-generate -fcoverage-mapping) |     add_compile_options(-fprofile-instr-generate -fcoverage-mapping) | ||||||
|     add_link_options(-fprofile-instr-generate -fcoverage-mapping) |     add_link_options(-fprofile-instr-generate -fcoverage-mapping) | ||||||
| endif () | endif() | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue