gdbstub/gdbstub/CMakeLists.txt

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})