Skip to content

Commit dc67259

Browse files
committed
Formate cmake files
1 parent c0252b4 commit dc67259

File tree

5 files changed

+95
-69
lines changed

5 files changed

+95
-69
lines changed

.cmake-format.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
format:
2+
line_width: 123
3+
tab_size: 4
4+
max_subgroups_hwrap: 4
5+
max_pargs_hwrap: 4
6+
max_rows_cmdline: 8
7+
separate_ctrl_name_with_space: false
8+
separate_fn_name_with_space: false
9+
dangle_parens: true
10+
min_prefix_chars: 8
11+
max_lines_hwrap: 3
12+
line_ending: unix
13+
markup:
14+
bullet_char: '*'
15+
enum_char: .
16+
enable_markup: false

CMakeLists.txt

+58-48
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
cmake_minimum_required(VERSION 3.25...3.30)
2-
project(mylib
3-
VERSION 1.0.0
4-
DESCRIPTION "Template for C++ library built with CMake"
5-
LANGUAGES CXX)
2+
project(mylib VERSION 1.0.0 DESCRIPTION "Template for C++ library built with CMake" LANGUAGES CXX)
63

74
#----------------------------------------------------------------------------------------------------------------------
85
# general settings and options
@@ -18,16 +15,28 @@ option(MYLIB_BUILD_TESTS "Build mylib tests" ${is_top_level})
1815
option(MYLIB_BUILD_EXAMPLES "Build mylib examples" ${is_top_level})
1916
option(MYLIB_BUILD_DOCS "Build mylib documentation" OFF)
2017
option(MYLIB_INSTALL "Generate target for installing mylib" ${is_top_level})
21-
set_if_undefined(MYLIB_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/mylib" CACHE STRING
22-
"Install path for mylib package-related CMake files")
18+
set_if_undefined(
19+
MYLIB_INSTALL_CMAKEDIR
20+
"${CMAKE_INSTALL_LIBDIR}/cmake/mylib"
21+
CACHE
22+
STRING
23+
"Install path for mylib package-related CMake files"
24+
)
2325

2426
if(DEFINED MYLIB_SHARED_LIBS)
2527
set(BUILD_SHARED_LIBS ${MYLIB_SHARED_LIBS})
2628
endif()
2729

2830
if(NOT DEFINED CMAKE_BUILD_TYPE AND NOT DEFINED CMAKE_CONFIGURATION_TYPES)
2931
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
30-
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
32+
set_property(
33+
CACHE CMAKE_BUILD_TYPE
34+
PROPERTY STRINGS
35+
"Debug"
36+
"Release"
37+
"MinSizeRel"
38+
"RelWithDebInfo"
39+
)
3140
endif()
3241

3342
# Neither of these two are technically needed, but they make the expectation clear
@@ -59,10 +68,7 @@ endif()
5968

6069
generate_export_header(mylib EXPORT_FILE_NAME include/mylib/${export_file_name})
6170

62-
set(sources
63-
include/mylib/export.h
64-
include/mylib/mylib.h
65-
src/mylib.cpp)
71+
set(sources include/mylib/export.h include/mylib/mylib.h src/mylib.cpp)
6672
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${sources})
6773

6874
#----------------------------------------------------------------------------------------------------------------------
@@ -71,40 +77,44 @@ source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${sources})
7177

7278
include(CMakePackageConfigHelpers)
7379

74-
7580
target_sources(mylib PRIVATE src/mylib.cpp)
76-
target_sources(mylib PUBLIC FILE_SET HEADERS
77-
BASE_DIRS
78-
${CMAKE_CURRENT_SOURCE_DIR}/include
79-
${CMAKE_CURRENT_BINARY_DIR}/include
80-
FILES
81-
${CMAKE_CURRENT_SOURCE_DIR}/include/mylib/mylib.h
82-
${CMAKE_CURRENT_SOURCE_DIR}/include/mylib/export.h
83-
${CMAKE_CURRENT_BINARY_DIR}/include/mylib/${export_file_name})
81+
target_sources(
82+
mylib
83+
PUBLIC FILE_SET
84+
HEADERS
85+
BASE_DIRS
86+
${CMAKE_CURRENT_SOURCE_DIR}/include
87+
${CMAKE_CURRENT_BINARY_DIR}/include
88+
FILES
89+
${CMAKE_CURRENT_SOURCE_DIR}/include/mylib/mylib.h
90+
${CMAKE_CURRENT_SOURCE_DIR}/include/mylib/export.h
91+
${CMAKE_CURRENT_BINARY_DIR}/include/mylib/${export_file_name}
92+
)
8493
target_compile_definitions(mylib PUBLIC "$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:MYLIB_STATIC_DEFINE>")
8594

8695
# target_include_directories(mylib
8796
# PUBLIC
8897
# "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
8998
# "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>")
9099

91-
set_target_properties(mylib PROPERTIES
92-
SOVERSION ${PROJECT_VERSION_MAJOR}
93-
VERSION ${PROJECT_VERSION})
100+
set_target_properties(mylib PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION})
94101

95102
if(MYLIB_INSTALL AND NOT CMAKE_SKIP_INSTALL_RULES)
96-
configure_package_config_file(cmake/mylib-config.cmake.in mylib-config.cmake
97-
INSTALL_DESTINATION "${MYLIB_INSTALL_CMAKEDIR}")
98-
99-
write_basic_package_version_file(mylib-config-version.cmake
100-
COMPATIBILITY SameMajorVersion)
101-
102-
install(TARGETS mylib EXPORT mylib_export
103-
RUNTIME COMPONENT mylib
104-
LIBRARY COMPONENT mylib NAMELINK_COMPONENT mylib-dev
105-
ARCHIVE COMPONENT mylib-dev
106-
FILE_SET HEADERS
107-
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
103+
configure_package_config_file(
104+
cmake/mylib-config.cmake.in mylib-config.cmake INSTALL_DESTINATION "${MYLIB_INSTALL_CMAKEDIR}"
105+
)
106+
107+
write_basic_package_version_file(mylib-config-version.cmake COMPATIBILITY SameMajorVersion)
108+
109+
install(TARGETS mylib
110+
EXPORT mylib_export
111+
RUNTIME COMPONENT mylib
112+
LIBRARY COMPONENT mylib NAMELINK_COMPONENT mylib-dev
113+
ARCHIVE COMPONENT mylib-dev FILE_SET HEADERS COMPONENT mylib-dev
114+
INCLUDES
115+
COMPONENT mylib-dev
116+
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
117+
)
108118

109119
# install(DIRECTORY include/
110120
# TYPE INCLUDE
@@ -120,16 +130,15 @@ if(MYLIB_INSTALL AND NOT CMAKE_SKIP_INSTALL_RULES)
120130
endif()
121131

122132
install(EXPORT mylib_export
123-
COMPONENT mylib-dev
124-
FILE "${targets_file}"
125-
DESTINATION "${MYLIB_INSTALL_CMAKEDIR}"
126-
NAMESPACE mylib::)
133+
COMPONENT mylib-dev
134+
FILE "${targets_file}"
135+
DESTINATION "${MYLIB_INSTALL_CMAKEDIR}"
136+
NAMESPACE mylib::
137+
)
127138

128-
install(FILES
129-
"${CMAKE_CURRENT_BINARY_DIR}/mylib-config.cmake"
130-
"${CMAKE_CURRENT_BINARY_DIR}/mylib-config-version.cmake"
131-
COMPONENT mylib-dev
132-
DESTINATION "${MYLIB_INSTALL_CMAKEDIR}")
139+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/mylib-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/mylib-config-version.cmake"
140+
COMPONENT mylib-dev DESTINATION "${MYLIB_INSTALL_CMAKEDIR}"
141+
)
133142

134143
if(MSVC)
135144
set(pdb_file "")
@@ -145,10 +154,11 @@ if(MYLIB_INSTALL AND NOT CMAKE_SKIP_INSTALL_RULES)
145154
endif()
146155

147156
install(FILES "${pdb_file}"
148-
COMPONENT mylib-dev
149-
CONFIGURATIONS Debug RelWithDebInfo
150-
DESTINATION "${pdb_file_destination}"
151-
OPTIONAL)
157+
COMPONENT mylib-dev
158+
CONFIGURATIONS Debug RelWithDebInfo
159+
DESTINATION "${pdb_file_destination}"
160+
OPTIONAL
161+
)
152162
endif()
153163
endif()
154164

cmake/silent_copy.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ math(EXPR dir_idx "${CMAKE_ARGC} - 1")
66
set(first_file_idx ${dir_idx})
77

88
foreach(i RANGE ${dir_idx})
9-
if ("${CMAKE_ARGV${i}}" STREQUAL "-P")
9+
if("${CMAKE_ARGV${i}}" STREQUAL "-P")
1010
math(EXPR first_file_idx "${i} + 2")
1111
break()
1212
endif()

cmake/utils.cmake

+15-12
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,29 @@ function(win_copy_deps_to_target_dir target)
2323
if(CMAKE_MAJOR_VERSION GREATER 3 OR CMAKE_MINOR_VERSION GREATER_EQUAL 21)
2424
set(has_runtime_dll_genex YES)
2525

26-
add_custom_command(TARGET ${target} POST_BUILD
27-
COMMAND ${CMAKE_COMMAND} -P "${mylib_SOURCE_DIR}/cmake/silent_copy.cmake"
28-
"$<TARGET_RUNTIME_DLLS:${target}>" "$<TARGET_FILE_DIR:${target}>"
29-
COMMAND_EXPAND_LISTS)
26+
add_custom_command(
27+
TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -P "${mylib_SOURCE_DIR}/cmake/silent_copy.cmake"
28+
"$<TARGET_RUNTIME_DLLS:${target}>" "$<TARGET_FILE_DIR:${target}>"
29+
COMMAND_EXPAND_LISTS
30+
)
3031
endif()
3132

3233
foreach(dep ${ARGN})
3334
get_target_property(dep_type ${dep} TYPE)
3435

3536
if(dep_type STREQUAL "SHARED_LIBRARY")
3637
if(NOT has_runtime_dll_genex)
37-
add_custom_command(TARGET ${target} POST_BUILD
38-
COMMAND ${CMAKE_COMMAND} -P "${mylib_SOURCE_DIR}/cmake/silent_copy.cmake"
39-
"$<TARGET_FILE:${dep}>" "$<TARGET_PDB_FILE:${dep}>" "$<TARGET_FILE_DIR:${target}>"
40-
COMMAND_EXPAND_LISTS)
38+
add_custom_command(
39+
TARGET ${target} POST_BUILD
40+
COMMAND ${CMAKE_COMMAND} -P "${mylib_SOURCE_DIR}/cmake/silent_copy.cmake" "$<TARGET_FILE:${dep}>"
41+
"$<TARGET_PDB_FILE:${dep}>" "$<TARGET_FILE_DIR:${target}>" COMMAND_EXPAND_LISTS
42+
)
4143
else()
42-
add_custom_command(TARGET ${target} POST_BUILD
43-
COMMAND ${CMAKE_COMMAND} -P "${mylib_SOURCE_DIR}/cmake/silent_copy.cmake"
44-
"$<TARGET_PDB_FILE:${dep}>" "$<TARGET_FILE_DIR:${target}>"
45-
COMMAND_EXPAND_LISTS)
44+
add_custom_command(
45+
TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -P "${mylib_SOURCE_DIR}/cmake/silent_copy.cmake"
46+
"$<TARGET_PDB_FILE:${dep}>" "$<TARGET_FILE_DIR:${target}>"
47+
COMMAND_EXPAND_LISTS
48+
)
4649
endif()
4750
endif()
4851
endforeach()

tests/CMakeLists.txt

+5-8
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ endif()
2121
#----------------------------------------------------------------------------------------------------------------------
2222

2323
include(FetchContent)
24-
FetchContent_Declare(googletest URL https://github.com/google/googletest/archive/refs/tags/v1.15.2.tar.gz
25-
DOWNLOAD_EXTRACT_TIMESTAMP ON)
24+
FetchContent_Declare(
25+
googletest URL https://github.com/google/googletest/archive/refs/tags/v1.15.2.tar.gz DOWNLOAD_EXTRACT_TIMESTAMP ON
26+
)
2627

2728
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) # do not override parent project's runtime settings on Windows
2829
set(INSTALL_GTEST OFF)
@@ -45,8 +46,7 @@ endif()
4546
# tests sources
4647
#----------------------------------------------------------------------------------------------------------------------
4748

48-
set(sources
49-
add_test.cpp)
49+
set(sources add_test.cpp)
5050
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${sources})
5151

5252
#----------------------------------------------------------------------------------------------------------------------
@@ -56,10 +56,7 @@ source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${sources})
5656
add_executable(mylib-tests)
5757
target_sources(mylib-tests PRIVATE ${sources})
5858

59-
target_link_libraries(mylib-tests
60-
PRIVATE
61-
mylib::mylib
62-
gtest_main)
59+
target_link_libraries(mylib-tests PRIVATE mylib::mylib gtest_main)
6360

6461
if(NOT is_top_level)
6562
win_copy_deps_to_target_dir(mylib-tests mylib::mylib)

0 commit comments

Comments
 (0)