Skip to content

Commit 131a8fb

Browse files
committed
Minor CMake enhancements
Added some basic compiler checks to allow building with default MSVC using CMake. Added version and languages commands to CMake. Set library linkages to private, since they shouldn't be consumed directly by a consumer of this repo.
1 parent 0505b37 commit 131a8fb

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

CMakeLists.txt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
cmake_minimum_required(VERSION 3.24)
22
set(CMAKE_POLICY_DEFAULT_CMP0091 NEW)
33

4-
project(canal)
4+
project(canal VERSION 1.0.5 LANGUAGES CXX C)
55

66
set(CMAKE_C_STANDARD 11)
77
set(CMAKE_CXX_STANDARD 11)
88

99
set(CMAKE_C_COMPILER)
1010
set(CMAKE_CXX_COMPILER)
1111

12-
#add_definitions(-DUNICODE)
13-
#add_definitions(-D_UNICODE)
14-
add_definitions(-D_MBCS)
15-
add_definitions(-D_WIN32_WINNT_WIN10)
12+
if(NOT MSVC)
13+
#add_definitions(-DUNICODE)
14+
#add_definitions(-D_UNICODE)
15+
add_definitions(-D_MBCS)
16+
add_definitions(-D_WIN32_WINNT_WIN10)
17+
endif()
1618

17-
#add_compile_options(-Wall -Wextra -Wpedantic)
18-
add_compile_options(-Wno-pragma-once-outside-header)
19-
add_compile_options(-Wno-unused-parameter)
19+
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
20+
#add_compile_options(-Wall -Wextra -Wpedantic)
21+
add_compile_options(-Wno-pragma-once-outside-header)
22+
add_compile_options(-Wno-unused-parameter)
23+
endif()
2024

2125
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
2226
#add_compile_definitions(canal DEBUG_CANAL)
@@ -42,7 +46,7 @@ add_library(canal SHARED
4246
set_property(TARGET canal PROPERTY
4347
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
4448

45-
target_link_libraries(canal cfgmgr32 winusb)
49+
target_link_libraries(canal PRIVATE cfgmgr32 winusb)
4650
set_target_properties(canal PROPERTIES OUTPUT_NAME "canal$<$<CONFIG:Debug>:d>")
4751

4852

0 commit comments

Comments
 (0)