文件
Marry/CMakeLists.txt
T

42 行
1.2 KiB
CMake
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
cmake_minimum_required(VERSION 3.24)
project(marry)
# 标准 C++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# 引用 godot-cppCMake 方式)
set(GODOT_CPP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/godot-cpp")
add_subdirectory("${GODOT_CPP_PATH}")
# 扩展库本体
add_library(marry SHARED
src/register_types.cpp
src/example.cpp
src/example.h
src/register_types.h
)
target_include_directories(marry PRIVATE src)
# 链接 godot-cpp
target_link_libraries(marry PRIVATE godot-cpp)
# 输出到 bin/ 目录(Godot 从那里加载;VS 里编译后 dll 直接落到 res://bin/
set_target_properties(marry PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin"
PREFIX ""
)
# VS 多配置生成器会输出到 bin/Release/ 等子目录,这里复制到 bin/ 根目录
# 保证 .gdextension 里 res://bin/marry.dll 始终能找到
add_custom_command(TARGET marry POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"$<TARGET_FILE:marry>"
"${CMAKE_CURRENT_SOURCE_DIR}/bin/marry.dll"
COMMENT "复制 marry.dll 到 bin/ 根目录"
)