Skip to content

Commit 4634893

Browse files
update files from CMAKE_Lib_Template
1 parent f6e07cb commit 4634893

File tree

7 files changed

+156
-109
lines changed

7 files changed

+156
-109
lines changed

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# This program is free software. You can redistribute it and/or modify it under the terms of the MIT License.
44
#
55

6-
cmake_minimum_required(VERSION 3.22.0 FATAL_ERROR)
6+
cmake_minimum_required(VERSION 3.24.0 FATAL_ERROR)
77

88
# ----------------------------------------------- User settings --------------------------------------------------------
99
# ======================================================================================================================
@@ -23,13 +23,15 @@ option(MAKE_32_BIT_BINARY "Compile as 32 bit application. No effect on 32 bit Sy
2323
option(OPENMP "enable openmp" OFF)
2424
option(OPTIMIZE_DEBUG "apply optimizations also in debug mode" ON)
2525
option(CLANG_FORMAT "use clang-format" ON)
26-
option(CLANG_TIDY "use clang-tidy" ON)
26+
option(CLANG_TIDY "use clang-tidy" OFF)
2727
option(CLANG_TIDY_NO_ERRORS "do not treat clang-tidy warnings as errors" ON)
2828
option(OPTIMIZE_FOR_ARCHITECTURE "enable optimizations for specified architecture" OFF)
2929
option(COMPILER_EXTENSIONS "enable compiler specific C++ extensions" OFF)
3030
option(ENABLE_TEST "enable test builds" ON)
3131
option(STATIC_LIB "build static library" OFF)
3232
option(INSTAL_LIB "add library to install target" ON)
33+
option(WERROR "warnings as errors" ON)
34+
option(FORCE_CLANG_FORMAT "run clang format before target build" ON)
3335

3436
# ======================================================================================================================
3537
# ======================================================================================================================

Doxyfile.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,19 @@ DOXYFILE_ENCODING = UTF-8
3636
# title of most generated pages and in a few other places.
3737
# The default value is: My Project.
3838

39-
PROJECT_NAME = "cxxitimer"
39+
PROJECT_NAME = @PROJECT_NAME@
4040

4141
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
4242
# could be handy for archiving the generated documentation or if some version
4343
# control system is used.
4444

45-
PROJECT_NUMBER =
45+
PROJECT_NUMBER = @PROJECT_VERSION@
4646

4747
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4848
# for a project that appears at the top of each page and should give viewer a
4949
# quick idea about the purpose of the project. Keep the description short.
5050

51-
PROJECT_BRIEF = "A library to handle linux interval timers"
51+
PROJECT_BRIEF = "@PROJECT_BRIEF@"
5252

5353
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
5454
# in the documentation. The maximum height of the logo should not exceed 55
@@ -62,7 +62,7 @@ PROJECT_LOGO =
6262
# entered, it will be relative to the location where doxygen was started. If
6363
# left blank the current directory will be used.
6464

65-
OUTPUT_DIRECTORY = docs_doxy
65+
OUTPUT_DIRECTORY = @CMAKE_BINARY_DIR@/docs_doxy
6666

6767
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
6868
# directories (in 2 levels) under the output directory of each output format and

cmake_files/compileropts.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ function(commonopts target)
1414

1515
if(MAKE_32_BIT_BINARY)
1616
message(STATUS "Compiling as 32 bit binary.")
17-
target_compile_options(${target} PUBLIC -m32)
17+
target_compile_options(${target} PRIVATE -m32)
1818
endif()
1919

2020
if(OPTIMIZE_FOR_ARCHITECTURE)
2121
message(STATUS "using architecture specific code generator: ${ARCHITECTURE}")
22-
target_compile_options(${target} PUBLIC -march=${ARCHITECTURE})
22+
target_compile_options(${target} PRIVATE -march=${ARCHITECTURE})
2323
endif()
2424
endfunction()
2525

@@ -31,15 +31,15 @@ function(set_options target use_omp)
3131

3232
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
3333
# TODO check options
34-
target_compile_options(${target} PUBLIC -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd)
34+
target_compile_options(${target} PRIVATE -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd)
3535
SET(CMAKE_CXX_FLAGS_DEBUG "-g3 -D_DEBUG")
3636
endif()
3737
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
3838
# more debugging information
3939
SET(CMAKE_CXX_FLAGS_DEBUG "/Zi")
4040

4141
if(ENABLE_MULTITHREADING AND OPENMP)
42-
target_compile_options(${target} PUBLIC /OpenMP)
42+
target_compile_options(${target} PRIVATE /OpenMP)
4343
endif()
4444
else()
4545
message(AUTHOR_WARNING

cmake_files/define.cmake

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,48 @@ function(set_definitions target)
77
# compiler
88
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
99
# compiler specific defines
10-
target_compile_definitions(${target} PUBLIC "COMPILER_GNU")
11-
target_compile_definitions(${target} PUBLIC "COMPILER_GNU_CLANG")
10+
target_compile_definitions(${target} PRIVATE "COMPILER_GNU")
11+
target_compile_definitions(${target} PRIVATE "COMPILER_GNU_CLANG")
1212
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
1313
# compiler specific defines
14-
target_compile_definitions(${target} PUBLIC "COMPILER_CLANG")
15-
target_compile_definitions(${target} PUBLIC "COMPILER_GNU_CLANG")
14+
target_compile_definitions(${target} PRIVATE "COMPILER_CLANG")
15+
target_compile_definitions(${target} PRIVATE "COMPILER_GNU_CLANG")
1616
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
17-
target_compile_definitions(${target} PUBLIC "COMPILER_MSVC")
17+
target_compile_definitions(${target} PRIVATE "COMPILER_MSVC")
1818
message(AUTHOR_WARNING
1919
"You are using a compiler other than gcc/clang. Only gcc/clang are fully supported by this template.")
2020
else ()
21-
target_compile_definitions(${target} PUBLIC "COMPILER_UNKNOWN")
21+
target_compile_definitions(${target} PRIVATE "COMPILER_UNKNOWN")
2222
message(AUTHOR_WARNING
2323
"You are using a compiler other than gcc/clang. Only gcc/clang are fully supported by this template.")
2424
endif ()
2525

2626
# project
27-
target_compile_definitions(${target} PUBLIC "PROJECT_VERSION=\"${PROJECT_VERSION}\"")
28-
target_compile_definitions(${target} PUBLIC "PROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}")
29-
target_compile_definitions(${target} PUBLIC "PROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR}")
30-
target_compile_definitions(${target} PUBLIC "PROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH}")
31-
target_compile_definitions(${target} PUBLIC "PROJECT_NAME=\"${PROJECT_NAME}\"")
32-
target_compile_definitions(${target} PUBLIC "COMPILER_INFO=\"${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}\"")
33-
target_compile_definitions(${target} PUBLIC "SYSTEM_INFO=\"${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR}\"")
27+
target_compile_definitions(${target} PRIVATE "PROJECT_VERSION=\"${PROJECT_VERSION}\"")
28+
target_compile_definitions(${target} PRIVATE "PROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}")
29+
target_compile_definitions(${target} PRIVATE "PROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR}")
30+
target_compile_definitions(${target} PRIVATE "PROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH}")
31+
target_compile_definitions(${target} PRIVATE "PROJECT_NAME=\"${PROJECT_NAME}\"")
32+
target_compile_definitions(${target} PRIVATE "COMPILER_INFO=\"${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}\"")
33+
target_compile_definitions(${target} PRIVATE "SYSTEM_INFO=\"${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR}\"")
34+
string(REPLACE "-" "_" project_name_rcs "${PROJECT_NAME}")
35+
string(REPLACE " " "_" project_name_rcs "${project_name_rcs}")
36+
target_compile_definitions(${target} PRIVATE "RCS_HASH=${project_name_rcs}\_version_info::GIT_HASH")
3437

3538
# system
3639
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
37-
target_compile_definitions(${target} PUBLIC "OS_LINUX")
38-
target_compile_definitions(${target} PUBLIC "OS_POSIX")
40+
target_compile_definitions(${target} PRIVATE "OS_LINUX")
41+
target_compile_definitions(${target} PRIVATE "OS_POSIX")
3942
elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
40-
target_compile_definitions(${target} PUBLIC "OS_FREEBSD")
41-
target_compile_definitions(${target} PUBLIC "OS_POSIX")
43+
target_compile_definitions(${target} PRIVATE "OS_FREEBSD")
44+
target_compile_definitions(${target} PRIVATE "OS_POSIX")
4245
elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
43-
target_compile_definitions(${target} PUBLIC "OS_WINDOWS")
46+
target_compile_definitions(${target} PRIVATE "OS_WINDOWS")
4447
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
45-
target_compile_definitions(${target} PUBLIC "OS_DARWIN")
46-
target_compile_definitions(${target} PUBLIC "OS_POSIX")
48+
target_compile_definitions(${target} PRIVATE "OS_DARWIN")
49+
target_compile_definitions(${target} PRIVATE "OS_POSIX")
4750
endif ()
4851

4952
# architecture defines
50-
target_compile_definitions(${target} PUBLIC CPU_WORD_BYTES=${CMAKE_SIZEOF_VOID_P})
51-
endfunction()
53+
target_compile_definitions(${target} PRIVATE CPU_WORD_BYTES=${CMAKE_SIZEOF_VOID_P})
54+
endfunction()

cmake_files/setup.cmake

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
# This program is free software. You can redistribute it and/or modify it under the terms of the MIT License.
44
#
55

6-
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
7-
86
include(CTest)
97
include(GNUInstallDirs)
108
include(CMakePackageConfigHelpers)
@@ -15,24 +13,25 @@ if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
1513
set(STANDALONE_PROJECT ON)
1614
endif ()
1715

16+
# warnings as errors
17+
if (WERROR AND COMPILER_WARNINGS AND STANDALONE_PROJECT)
18+
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
19+
endif ()
20+
1821
# ----------------------------------------------- clang-tidy -----------------------------------------------------------
1922
# ======================================================================================================================
20-
if(CLANG_TIDY AND STANDALONE_PROJECT)
21-
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
22-
if (${CLANG_TIDY_NO_ERRORS})
23-
set (CLANG_TIDY_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy-noerrors)
24-
else()
25-
set (CLANG_TIDY_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy)
26-
endif()
27-
28-
set(CMAKE_CXX_CLANG_TIDY
29-
clang-tidy
30-
-config-file=${CLANG_TIDY_CONFIG_FILE})
31-
message(STATUS "clang-tidy enabled: ${CLANG_TIDY_CONFIG_FILE}")
32-
else()
33-
message(WARNING "clang-tidy requested, but only available if clang is selected as compiler")
34-
endif()
35-
endif()
23+
if (CLANG_TIDY AND COMPILER_WARNINGS)
24+
if (${CLANG_TIDY_NO_ERRORS})
25+
set (CLANG_TIDY_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy-noerrors)
26+
else ()
27+
set (CLANG_TIDY_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy)
28+
endif ()
29+
30+
set(CMAKE_CXX_CLANG_TIDY
31+
clang-tidy
32+
-config-file=${CLANG_TIDY_CONFIG_FILE})
33+
message(STATUS "clang-tidy enabled: ${CLANG_TIDY_CONFIG_FILE}")
34+
endif ()
3635

3736
# ----------------------------------------------- library target -------------------------------------------------------
3837
# ======================================================================================================================
@@ -53,7 +52,7 @@ if (INSTAL_LIB)
5352
)
5453

5554
install(
56-
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
55+
DIRECTORY ${CMAKE_SOURCE_DIR}/include/
5756
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
5857
FILES_MATCHING PATTERN "*.h*"
5958
)
@@ -110,11 +109,6 @@ if (ENABLE_TEST AND STANDALONE_PROJECT)
110109
add_subdirectory(test)
111110
endif ()
112111

113-
# disable compiler warnings if project is not a standalone project
114-
if (NOT STANDALONE_PROJECT)
115-
unset(COMPILER_WARNINGS)
116-
endif ()
117-
118112
set_definitions(${Target})
119113
if (ENABLE_MULTITHREADING AND OPENMP)
120114
set_options(${Target} ON)
@@ -154,7 +148,7 @@ if (BUILD_DOC AND STANDALONE_PROJECT)
154148
message(STATUS "Doxygen configured")
155149

156150
# note the option ALL which allows to build the docs together with the application
157-
add_custom_target(doc_doxygen_${Target} ALL
151+
add_custom_target(doc_doxygen_${Target}
158152
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
159153
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
160154
COMMENT "Generating API documentation with Doxygen"
@@ -175,23 +169,31 @@ if (BUILD_DOC AND STANDALONE_PROJECT)
175169
endif ()
176170

177171
# add clang format target
178-
if (CLANG_FORMAT AND NOT STANDALONE_PROJECT)
172+
if (CLANG_FORMAT AND STANDALONE_PROJECT)
179173
set(CLANG_FORMAT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/.clang-format)
180174

181175
if (EXISTS ${CLANG_FORMAT_FILE})
182176
include(cmake_files/ClangFormat.cmake)
183177
target_clangformat_setup(${Target})
178+
179+
if (FORCE_CLANG_FORMAT)
180+
add_dependencies(${Target} ${Target}_clangformat)
181+
endif ()
182+
184183
message(STATUS "Added clang format target(s)")
185184
else ()
186185
message(WARNING "Clang format enabled, but file ${CLANG_FORMAT_FILE} does not exist")
187186
endif ()
188187
endif ()
189188

190-
# generate version_info.cpp
191-
# output is not the acutal generated file --> command is always executed
189+
# generate version_info.{c,h}pp
192190
add_custom_command(
193191
OUTPUT
194-
${CMAKE_CURRENT_SOURCE_DIR}/src/generated/version_info_cpp
192+
${CMAKE_CURRENT_SOURCE_DIR}/src/generated/version_info_cpp # file does not exist --> command is always executed
193+
194+
BYPRODUCTS
195+
${CMAKE_CURRENT_SOURCE_DIR}/src/generated/version_info.cpp
196+
${CMAKE_CURRENT_SOURCE_DIR}/include/${Target}_version_info.hpp
195197

196198
COMMAND
197199
bash ${CMAKE_CURRENT_SOURCE_DIR}/scripts/gen_version_info_cpp.sh ${PROJECT_NAME}

cmake_files/warnings.cmake

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,64 @@
55

66
# warnings that are valid for gcc and clang
77
function(commonwarn target)
8-
target_compile_options(${target} PUBLIC -Wall -Wextra -pedantic -pedantic-errors)
8+
target_compile_options(${target} PRIVATE -Wall -Wextra -pedantic -pedantic-errors)
99

1010
# see https://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html for more details
1111

12-
target_compile_options(${target} PUBLIC -Wnull-dereference)
13-
target_compile_options(${target} PUBLIC -Wold-style-cast)
14-
target_compile_options(${target} PUBLIC -Wdouble-promotion)
15-
target_compile_options(${target} PUBLIC -Wformat=2)
16-
target_compile_options(${target} PUBLIC -Winit-self)
17-
target_compile_options(${target} PUBLIC -Wsequence-point)
18-
target_compile_options(${target} PUBLIC -Wswitch-default)
19-
target_compile_options(${target} PUBLIC -Wswitch-enum -Wno-error=switch-enum)
20-
target_compile_options(${target} PUBLIC -Wconversion)
21-
target_compile_options(${target} PUBLIC -Wcast-align)
22-
target_compile_options(${target} PUBLIC -Wfloat-equal)
23-
target_compile_options(${target} PUBLIC -Wundef)
24-
target_compile_options(${target} PUBLIC -Wcast-qual)
12+
target_compile_options(${target} PRIVATE -Wnull-dereference)
13+
target_compile_options(${target} PRIVATE -Wold-style-cast)
14+
target_compile_options(${target} PRIVATE -Wdouble-promotion)
15+
target_compile_options(${target} PRIVATE -Wformat=2)
16+
target_compile_options(${target} PRIVATE -Winit-self)
17+
target_compile_options(${target} PRIVATE -Wsequence-point)
18+
target_compile_options(${target} PRIVATE -Wswitch-default)
19+
target_compile_options(${target} PRIVATE -Wswitch-enum -Wno-error=switch-enum)
20+
target_compile_options(${target} PRIVATE -Wconversion)
21+
target_compile_options(${target} PRIVATE -Wcast-align)
22+
target_compile_options(${target} PRIVATE -Wfloat-equal)
23+
target_compile_options(${target} PRIVATE -Wundef)
24+
target_compile_options(${target} PRIVATE -Wcast-qual)
2525
endfunction()
2626

2727
# gcc specific warnings
2828
function(gccwarn target)
2929
# see https://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html for more details
3030

31-
target_compile_options(${target} PUBLIC -Wduplicated-cond)
32-
target_compile_options(${target} PUBLIC -Wduplicated-branches)
33-
target_compile_options(${target} PUBLIC -Wlogical-op)
34-
target_compile_options(${target} PUBLIC -Wrestrict)
35-
target_compile_options(${target} PUBLIC -Wuseless-cast -Wno-error=useless-cast)
36-
target_compile_options(${target} PUBLIC -Wshadow=local -Wno-error=shadow)
31+
target_compile_options(${target} PRIVATE -Wduplicated-cond)
32+
target_compile_options(${target} PRIVATE -Wduplicated-branches)
33+
target_compile_options(${target} PRIVATE -Wlogical-op)
34+
target_compile_options(${target} PRIVATE -Wrestrict)
35+
target_compile_options(${target} PRIVATE -Wuseless-cast -Wno-error=useless-cast)
36+
target_compile_options(${target} PRIVATE -Wshadow=local -Wno-error=shadow)
3737

38-
target_compile_options(${target} PUBLIC -Wno-error=switch-default)
39-
target_compile_options(${target} PUBLIC -Wno-error=attributes)
38+
target_compile_options(${target} PRIVATE -Wno-error=switch-default)
39+
target_compile_options(${target} PRIVATE -Wno-error=attributes)
4040
endfunction()
4141

4242
# clang specific warnings
4343
function(clangwarn target)
4444
# enable all
45-
target_compile_options(${target} PUBLIC -Weverything)
45+
target_compile_options(${target} PRIVATE -Weverything)
4646

4747
# and remove "useless" ones
48-
target_compile_options(${target} PUBLIC -Wno-c++98-compat)
49-
target_compile_options(${target} PUBLIC -Wno-c++98-c++11-c++14-compat)
50-
target_compile_options(${target} PUBLIC -Wno-c++98-compat-pedantic)
51-
target_compile_options(${target} PUBLIC -Wno-error=covered-switch-default)
52-
target_compile_options(${target} PUBLIC -Wno-shadow-field-in-constructor)
53-
target_compile_options(${target} PUBLIC -Wno-padded)
54-
target_compile_options(${target} PUBLIC -Wno-shadow-field)
55-
target_compile_options(${target} PUBLIC -Wno-weak-vtables)
56-
target_compile_options(${target} PUBLIC -Wno-exit-time-destructors)
57-
target_compile_options(${target} PUBLIC -Wno-global-constructors)
58-
target_compile_options(${target} PUBLIC -Wno-error=unreachable-code-return)
59-
target_compile_options(${target} PUBLIC -Wno-error=unreachable-code)
60-
target_compile_options(${target} PUBLIC -Wno-error=documentation)
61-
target_compile_options(${target} PUBLIC -Wno-error=unused-exception-parameter)
62-
target_compile_options(${target} PUBLIC -Wno-nested-anon-types)
63-
target_compile_options(${target} PUBLIC -Wno-gnu-anonymous-struct)
64-
target_compile_options(${target} PUBLIC -Wno-source-uses-openmp)
48+
target_compile_options(${target} PRIVATE -Wno-c++98-compat)
49+
target_compile_options(${target} PRIVATE -Wno-c++98-c++11-c++14-compat)
50+
target_compile_options(${target} PRIVATE -Wno-c++98-compat-pedantic)
51+
target_compile_options(${target} PRIVATE -Wno-error=covered-switch-default)
52+
target_compile_options(${target} PRIVATE -Wno-shadow-field-in-constructor)
53+
target_compile_options(${target} PRIVATE -Wno-padded)
54+
target_compile_options(${target} PRIVATE -Wno-shadow-field)
55+
target_compile_options(${target} PRIVATE -Wno-weak-vtables)
56+
target_compile_options(${target} PRIVATE -Wno-exit-time-destructors)
57+
target_compile_options(${target} PRIVATE -Wno-global-constructors)
58+
target_compile_options(${target} PRIVATE -Wno-error=unreachable-code-return)
59+
target_compile_options(${target} PRIVATE -Wno-error=unreachable-code)
60+
target_compile_options(${target} PRIVATE -Wno-error=documentation)
61+
target_compile_options(${target} PRIVATE -Wno-error=unused-exception-parameter)
62+
target_compile_options(${target} PRIVATE -Wno-nested-anon-types)
63+
target_compile_options(${target} PRIVATE -Wno-gnu-anonymous-struct)
64+
target_compile_options(${target} PRIVATE -Wno-source-uses-openmp)
65+
target_compile_options(${target} PRIVATE -Wno-disabled-macro-expansion)
6566

6667
endfunction()
6768

@@ -73,10 +74,10 @@ function(enable_warnings target)
7374
commonwarn(${target})
7475
clangwarn(${target})
7576
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
76-
target_compile_options(${target} PUBLIC /Wall /WX)
77+
target_compile_options(${target} PRIVATE /Wall /WX)
7778
endif()
7879
endfunction()
7980

8081
function(disable_warnings target)
81-
target_compile_options(${target} PUBLIC -w)
82+
target_compile_options(${target} PRIVATE -w)
8283
endfunction()

0 commit comments

Comments
 (0)