67 lines
2.3 KiB
CMake
67 lines
2.3 KiB
CMake
cmake_minimum_required(VERSION 3.9)
|
|
|
|
project(gdbstub)
|
|
|
|
if (NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Debug")
|
|
endif()
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -Wall -g2 -ggdb")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
|
|
|
|
add_compile_options(-Wall -Wextra -Wunused-function -Wpedantic)
|
|
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
add_compile_options(-Werror=return-local-addr -Wno-deprecated-copy -Werror=maybe-uninitialized)
|
|
add_compile_options(-Wno-cast-function-type)
|
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
add_compile_options(-Werror=return-stack-address -Wno-deprecated -Werror=uninitialized)
|
|
add_compile_options(-Wno-bad-function-cast -Wno-gnu-designator )
|
|
add_compile_options(-Wno-inconsistent-missing-override)
|
|
add_compile_options(-Wno-nested-anon-types -Wno-unused-private-field)
|
|
add_compile_options(-Wno-delete-non-abstract-non-virtual-dtor)
|
|
endif()
|
|
|
|
add_compile_options(-Werror=return-type -Werror=shadow -Werror=strict-aliasing
|
|
-Werror=uninitialized)
|
|
|
|
add_compile_options(-Wno-reorder -Wno-unused-variable -Wno-unused-parameter -Wno-sign-compare)
|
|
add_compile_options (-Wno-ignored-qualifiers)
|
|
|
|
# enable_language(C ASM)
|
|
|
|
message(STATUS "C++ Compiler: ${CMAKE_CXX_COMPILER}")
|
|
message(STATUS "C++ Compiler ID: ${CMAKE_CXX_COMPILER_ID}")
|
|
message(STATUS "C++ Compiler Version: ${CMAKE_CXX_COMPILER_VERSION}")
|
|
|
|
message(STATUS "CMAKE_BUILD_TYPE:" ${CMAKE_BUILD_TYPE})
|
|
message(STATUS "CMAKE_INSTALL_PREFIX:" ${CMAKE_INSTALL_PREFIX})
|
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "" FORCE)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
set(CMAKE_C_STANDARD 17)
|
|
set(CMAKE_CXX_EXTENSIONS ON)
|
|
|
|
|
|
|
|
find_package(PkgConfig REQUIRED) # 查找 GLib 库
|
|
pkg_check_modules(GLIB REQUIRED glib-2.0)
|
|
include_directories(${GLIB_INCLUDE_DIRS}) # 添加头文件路径
|
|
link_directories(${GLIB_LIBRARY_DIRS}) # 添加链接库
|
|
|
|
|
|
|
|
|
|
file(GLOB UTILS_SRC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/*.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/*.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/*.c)
|
|
set_source_files_properties(${UTILS_SRC} PROPERTIES LANGUAGE CXX)
|
|
|
|
add_executable(stub ${UTILS_SRC} stub.cpp)
|
|
target_include_directories(stub PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
target_include_directories(stub PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/utils)
|
|
target_link_libraries(stub ${GLIB_LIBRARIES})
|