# 设置最低版本的 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
)