cmakelist的使用

# 设置最低版本的 CMake
cmake_minimum_required(VERSION 3.15)

# 设置编译模式 Debug
set(CMAKE_BUILD_TYPE Debug)
# 针对不同的构建类型设置编译选项
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") # 启用调试符号,禁用优化
#set(CMAKE_CXX_FLAGS_RELEASE "-O3") # Release 优化

# 定义项目名称和语言
project(Test VERSION 1.0 LANGUAGES CXX)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")

# For macOS, set the architecture explicitly
if(APPLE)
    set(CMAKE_OSX_ARCHITECTURES "x86_64")
endif()

# 包含头文件目录(添加第三方库的 include 目录)
include_directories(include ../SDK/install/include)

# 添加第三方库目录
link_directories(../SDK/install/lib)

# 添加可执行文件并链接动态库
add_executable(Test main.cpp)
target_link_libraries(Test PRIVATE my_sdk)

# Specify the path to the Info.plist file
set_target_properties(Test PROPERTIES
    MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/Info.plist"
)
# 设置最低版本的 CMake
cmake_minimum_required(VERSION 3.15)

# 设置编译模式 Debug
set(CMAKE_BUILD_TYPE Debug)
# 针对不同的构建类型设置编译选项
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") # 启用调试符号,禁用优化
#set(CMAKE_CXX_FLAGS_RELEASE "-O3") # Release 优化

# 定义项目名称和语言
project(MY_SDK VERSION 1.0 LANGUAGES CXX)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")

# For macOS, set the architecture explicitly
if(APPLE)
    set(CMAKE_OSX_ARCHITECTURES "x86_64")
endif()

# 包含头文件目录
include_directories(include)

# 添加库目标
set(SRC_FILES
    src/Engine.cpp
    src/Implementation.cpp
)

add_library(my_sdk SHARED ${SRC_FILES})

if(APPLE)
    # 设置 CMake CXX 编译标志,启用 Objective-C++
    set_source_files_properties(${SRC_FILES} PROPERTIES COMPILE_FLAGS "-x objective-c++")

    # 链接 macOS 框架
    target_link_libraries(my_sdk "-framework Foundation" "-framework CoreGraphics")

    # 链接 macOS 系统框架
    #find_library(FOUNDATION_FRAMEWORK Foundation REQUIRED)
    #find_library(COREGRAPHICS_FRAMEWORK CoreGraphics REQUIRED)
    #target_link_libraries(my_sdk
    #    ${FOUNDATION_FRAMEWORK}
    #    ${COREGRAPHICS_FRAMEWORK}
    #)

    # 指定第三方库的头文件路径
    include_directories(${CMAKE_SOURCE_DIR}/libs/include)
    # 指定第三方库文件路径
    # link_directories("")

    # 链接第三方动态库
    target_link_libraries(my_sdk ${CMAKE_SOURCE_DIR}/libs/lib/libEngine.dylib)
endif()

# 设置动态库的名称
set_target_properties(my_sdk PROPERTIES
    OUTPUT_NAME "my_sdk"
    VERSION ${PROJECT_VERSION}
    SOVERSION 1
)

# 设置安装路径
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install) # 安装到 build/install 目录

#(可选)
# 安装动态库到 lib 文件夹
install(TARGETS my_sdk
    LIBRARY DESTINATION lib
)

# 安装头文件到 include 文件夹
install(DIRECTORY include/
    DESTINATION include
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值