Skip to content

Commit a6172ee

Browse files
authored
Merge pull request #25 from ModbusScope/dev/cmake
Dev/cmake
2 parents 7f17904 + 065eecf commit a6172ee

8 files changed

Lines changed: 38 additions & 30 deletions

File tree

CMakeLists.txt

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ project(notonlymodbusscope
66
VERSION 0.0.1
77
)
88

9-
add_definitions("-DDEBUG")
10-
119
set(SCOPESOURCE ScopeSource)
1210

11+
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
12+
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type" FORCE)
13+
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel")
14+
endif()
15+
16+
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
17+
1318
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1419

1520
set(CMAKE_CXX_STANDARD 20)
@@ -50,26 +55,17 @@ set(QT_LIB
5055
Qt::SerialPort
5156
)
5257

53-
include_directories(
54-
${CMAKE_CURRENT_SOURCE_DIR}/src
55-
${CMAKE_CURRENT_SOURCE_DIR}/libraries
56-
)
57-
58-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
59-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
60-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
58+
add_compile_options(-Wall -Wextra -Werror)
6159
if (MINGW)
62-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj")
60+
add_compile_options(-Wa,-mbig-obj)
6361
endif()
6462

65-
66-
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
63+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
6764
# Code Coverage Report
6865
if(USE_GCOV)
69-
message(STATUS "Enabling coverage")
70-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
71-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
72-
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage")
66+
message(STATUS "Enabling coverage")
67+
add_compile_options(--coverage)
68+
add_link_options(--coverage)
7369
endif()
7470
endif()
7571

libraries/muparser/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
4242
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
4343
endif()
4444

45-
FILE(GLOB_RECURSE MUPARSER_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") #all .cpp
45+
FILE(GLOB_RECURSE MUPARSER_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") #all .cpp
4646
add_library(muparser ${MUPARSER_SOURCES})
4747

4848
# Use the headers in the build-tree or the installed ones

scripts/build_linux.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -ex
44
mkdir -p release
55
cd release
66

7-
cmake -GNinja ..
7+
cmake -GNinja -DCMAKE_BUILD_TYPE=Release ..
88
ninja
99

1010
ctest --output-on-failure

scripts/build_windows.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ echo %PATH%
88

99
g++ -v
1010

11-
cmake -G "Ninja" ..
11+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release ..
1212
IF ERRORLEVEL 1 GOTO errorHandling
1313

1414
ninja

scripts/run_clang_tidy.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ SINGLE_FILE="${1:-}"
77

88
echo "=== Configuring (compile_commands.json) ==="
99
cmake -GNinja \
10+
-DCMAKE_BUILD_TYPE=Debug \
1011
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
1112
-DCMAKE_PREFIX_PATH="${QT_PREFIX}" \
1213
-B "${BUILD_DIR}"

scripts/run_clazy.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ SINGLE_FILE="${1:-}"
77

88
echo "=== Configuring (compile_commands.json) ==="
99
cmake -GNinja \
10+
-DCMAKE_BUILD_TYPE=Debug \
1011
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
1112
-DCMAKE_PREFIX_PATH="${QT_PREFIX}" \
1213
-B "${BUILD_DIR}"

src/CMakeLists.txt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,30 @@ execute_process(
1818
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/util/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/util/version.h)
1919
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/modbusscope.rc.in ${CMAKE_CURRENT_SOURCE_DIR}/../resources/modbusscope.rc)
2020

21-
FILE(GLOB_RECURSE SRCS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.h") #all .cpp/.h in current "src" folder and sub folders
22-
FILE(GLOB_RECURSE UIS "${CMAKE_CURRENT_SOURCE_DIR}/*.ui") #all .ui in current "src" folder and sub folders
21+
file(GLOB_RECURSE SRCS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.h") #all .cpp/.h in current "src" folder and sub folders
22+
file(GLOB_RECURSE UIS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.ui") #all .ui in current "src" folder and sub folders
2323

24-
qt_add_library (${SCOPESOURCE} STATIC ${SRCS} ${UIS})
24+
qt_add_library(${SCOPESOURCE} STATIC ${SRCS} ${UIS})
25+
26+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
27+
target_compile_definitions(${SCOPESOURCE} PRIVATE DEBUG)
28+
endif()
29+
30+
target_include_directories(${SCOPESOURCE} PUBLIC
31+
${CMAKE_CURRENT_SOURCE_DIR}
32+
)
33+
34+
target_include_directories(${SCOPESOURCE} SYSTEM PUBLIC
35+
${CMAKE_CURRENT_SOURCE_DIR}/../libraries
36+
)
2537

2638
# Default GUI type is blank
2739
set(GUI_TYPE "")
2840

2941
if(WIN32)
3042
set(GUI_TYPE WIN32)
3143
set(target_dir "bin/win")
32-
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
44+
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
3345
set(target_dir "bin/linux")
3446
else()
3547
message(SEND_ERROR "You are on an unsupported platform! (Not Win or Unix)")
@@ -62,10 +74,10 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
6274
)
6375

6476
# Do platform specific post target stuff
65-
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
77+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
6678

6779
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
6880

6981
elseif(WIN32)
7082
# not required
71-
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
83+
endif (CMAKE_SYSTEM_NAME STREQUAL "Linux")

tests/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
add_definitions(-DGTEST_LANGUAGE_CXX11)
2-
31
find_package(Threads REQUIRED)
42

53
if ($ENV{GOOGLETEST_DIR})
@@ -16,8 +14,6 @@ else ()
1614
message( FATAL_ERROR "No googletest src dir found - set GOOGLETEST_DIR to enable!")
1715
endif ()
1816

19-
include_directories(${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include)
20-
2117
set(
2218
GOOGLE_TEST_SOURCE
2319
${GTestSrc}/src/gtest-all.cc
@@ -43,6 +39,8 @@ function(add_xtest_mock SOURCE_NAME)
4339
${SOURCE_NAME}.cpp
4440
${GOOGLE_TEST_SOURCE}
4541
${ARGN})
42+
target_include_directories(${SOURCE_NAME} PRIVATE ${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include)
43+
target_compile_definitions(${SOURCE_NAME} PRIVATE GTEST_LANGUAGE_CXX11)
4644
target_link_libraries(${SOURCE_NAME} Qt::Test Threads::Threads ${QT_LIB} ${SCOPESOURCE})
4745
add_test(NAME ${SOURCE_NAME} COMMAND ${SOURCE_NAME})
4846
endfunction()

0 commit comments

Comments
 (0)