Skip to content

Commit 767ce4a

Browse files
committed
Optimize cmake environment
Remove cmake prefix to be able to use this as template for other projects
1 parent 583df24 commit 767ce4a

File tree

6 files changed

+30
-46
lines changed

6 files changed

+30
-46
lines changed

cmake/clang_warnings.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
# * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929
# */
3030

31-
set(MCC_WARNING_FLAGS
31+
set(WARNING_FLAGS
3232

3333
# From Xcode default project
3434
# -Wno-sign-conversion

cmake/doxygen.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,3 @@ if (DOXYGEN_FOUND)
5151
else (DOXYGEN_FOUND)
5252
message("Doxygen need to be installed to generate the doxygen documentation")
5353
endif (DOXYGEN_FOUND)
54-

cmake/env.cmake

Lines changed: 23 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232
#set(CMAKE_VERBOSE_MAKEFILE ON)
3333

3434
# Pathes
35-
if(NOT MCC_DEV)
36-
get_filename_component(MCC_DEV "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
35+
if(NOT DEV)
36+
get_filename_component(DEV "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
3737
endif()
3838

39-
set(MCC_CMAKE ${MCC_DEV}/cmake)
39+
set(CMAKE ${DEV}/cmake)
4040

4141
# Force C++17
4242
set(CMAKE_CXX_STANDARD 17)
@@ -45,46 +45,31 @@ set(CMAKE_CXX_EXTENSIONS OFF)
4545

4646
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
4747

48-
set(USE_CLANG false)
49-
if (CMAKE_CXX_COMPILER_ID MATCHES "[cC][lL][aA][nN][gG]") #Case insensitive match
50-
set(USE_CLANG true)
51-
else()
52-
set(USE_CLANG false)
53-
endif()
54-
55-
set(USE_GCC false)
56-
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
57-
set(USE_GCC true)
58-
else()
59-
set(USE_GCC false)
60-
endif()
61-
6248
# Warning flags
63-
if(USE_CLANG)
64-
include(${MCC_CMAKE}/clang_warnings.cmake)
49+
# Case insensitive match
50+
if(CMAKE_CXX_COMPILER_ID MATCHES "[cC][lL][aA][nN][gG]")
51+
include(${CMAKE}/clang_warnings.cmake)
6552

66-
set(MCC_WARNING_FLAGS_SPACED "")
67-
foreach(MCC_WARNING_FLAG ${MCC_WARNING_FLAGS})
68-
set(MCC_WARNING_FLAGS_SPACED "${MCC_WARNING_FLAGS_SPACED} ${MCC_WARNING_FLAG}")
69-
endforeach()
53+
set(WARNING_FLAGS_SPACED "")
54+
foreach(WARNING_FLAG ${WARNING_FLAGS})
55+
set(WARNING_FLAGS_SPACED "${WARNING_FLAGS_SPACED} ${WARNING_FLAG}")
56+
endforeach()
7057

71-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything -Werror")
72-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MCC_WARNING_FLAGS_SPACED}")
73-
endif()
58+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything -Werror")
59+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS_SPACED}")
7460

75-
if(USE_GCC)
76-
include(${MCC_CMAKE}/gcc_warnings.cmake)
61+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
62+
include(${CMAKE}/gcc_warnings.cmake)
7763

78-
set(MCC_WARNING_FLAGS_SPACED "")
79-
foreach(MCC_WARNING_FLAG ${MCC_WARNING_FLAGS})
80-
set(MCC_WARNING_FLAGS_SPACED "${MCC_WARNING_FLAGS_SPACED} ${MCC_WARNING_FLAG}")
81-
endforeach()
64+
set(WARNING_FLAGS_SPACED "")
65+
foreach(WARNING_FLAG ${WARNING_FLAGS})
66+
set(WARNING_FLAGS_SPACED "${WARNING_FLAGS_SPACED} ${WARNING_FLAG}")
67+
endforeach()
8268

83-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra")
84-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MCC_WARNING_FLAGS_SPACED}")
85-
endif()
69+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra")
70+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS_SPACED}")
8671

87-
if(MSVC)
72+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
8873
# Force to always compile with W4
8974
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX")
9075
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
@@ -97,7 +82,7 @@ add_compile_options("$<$<CONFIG:DEBUG>:-DDEBUG>")
9782
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
9883

9984
# Project modules/variables
100-
set(CMAKE_MODULE_PATH ${MCC_CMAKE}/modules)
85+
set(CMAKE_MODULE_PATH ${CMAKE}/modules)
10186

10287
# Includes
103-
include(${MCC_CMAKE}/find_package.cmake)
88+
include(${CMAKE}/find_package.cmake)

cmake/gcc_warnings.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
# * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929
# */
3030

31-
set(MCC_WARNING_FLAGS
31+
set(WARNING_FLAGS
3232

3333
# -Wno-unknown-pragmas
3434
)

examples/cpuinfo/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,8 @@
3030

3131
project(cpuinfo)
3232

33-
include_directories(../../source)
34-
35-
add_executable(cpuinfo
33+
add_executable(${PROJECT_NAME}
3634
main.cpp
3735
)
3836

39-
target_link_libraries(cpuinfo PRIVATE modern.cpp.core)
37+
target_link_libraries(${PROJECT_NAME} PRIVATE modern.cpp.core)

source/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
project(modern.cpp.core)
3232

33-
add_library(modern.cpp.core
33+
add_library(${PROJECT_NAME}
3434
../README.md
3535
CPU.cpp
3636
CPU.h
@@ -45,3 +45,5 @@ add_library(modern.cpp.core
4545
templates/CSVWriter.h
4646
templates/Timer.h
4747
)
48+
49+
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/templates)

0 commit comments

Comments
 (0)