1
- cmake_minimum_required (VERSION 3.20.2) # CMake 版本
2
- project (CMake) # 项目名称
3
- include_directories (inc) # 头文件目录
4
- aux_source_directory (src DIR_SRCS) # 源文件目录
5
- set (MAIN ${DIR_SRCS} ) # 主程序名称
6
- set (PROJECT_BINARY_DIR target ) # 编译输出目录
7
- set (CMAKE_CXX_STANDARD_REQUIRED 20) # C++ 标准版本
8
- set (CMAKE_C_STANDARD_REQUIRED 17) # C 标准版本
9
- add_executable (${PROJECT_NAME} ${MAIN} ) # 指定目标可执行文件
1
+ cmake_minimum_required (VERSION 3.20.2) # CMake 版本
2
+ project (CMake) # 项目名称
3
+ set (CMAKE_CXX_STANDARD_REQUIRED 20) # C++ 标准版本
4
+ set (CMAKE_C_STANDARD_REQUIRED 17) # C 标准版本
5
+ link_libraries (m) # 启用数学标准库
6
+ add_executable ("C" "src/c/main.c" ) # C 构建目标
7
+ add_executable ("C++" "src/cpp/main.cpp" ) # C++ 构建目标
10
8
11
9
#[[ 配置 CMake 编译参数列表 ]]
12
10
if (CMAKE_SYSTEM_NAME MATCHES "Windows" )
@@ -15,6 +13,6 @@ if (CMAKE_SYSTEM_NAME MATCHES "Windows")
15
13
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4013 /we4431 /we4133 /we4716 /we6244 /we6246 /we4457 /we4456 /we4172 /we4700 /we4477 /we4018 /we4047" )
16
14
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME MATCHES "Darwin" )
17
15
# 将下列警告视为错误
18
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-pointer-types -Werror= return-type -Werror=shadow -Werror=return-local-addr -Werror=uninitialized -Werror=format -Werror=sign-compare -Werror=int-conversion" )
19
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type -Werror=shadow -Werror=return-local-addr -Werror=uninitialized -Werror=format -Werror= sign-compare" )
16
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=shadow -Werror=return-local-addr -Werror=uninitialized -Werror=sign-compare -Werror=int-conversion" )
17
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type -Werror=shadow -Werror=return-local-addr -Werror=uninitialized -Werror=sign-compare" )
20
18
endif ()
0 commit comments