乒乓球游戏:C++ GDExtension 实现
这个提交包含在:
+20
-17
@@ -1,5 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
project(marry)
|
||||
project(pingpang)
|
||||
|
||||
# 标准 C++17
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
@@ -11,31 +11,34 @@ set(GODOT_CPP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/godot-cpp")
|
||||
add_subdirectory("${GODOT_CPP_PATH}")
|
||||
|
||||
# 扩展库本体
|
||||
add_library(marry SHARED
|
||||
add_library(pingpang SHARED
|
||||
src/register_types.cpp
|
||||
src/example.cpp
|
||||
src/example.h
|
||||
src/register_types.h
|
||||
src/pingpong_ball.cpp
|
||||
src/pingpong_ball.h
|
||||
src/pingpong_paddle.cpp
|
||||
src/pingpong_paddle.h
|
||||
src/pingpong_game.cpp
|
||||
src/pingpong_game.h
|
||||
)
|
||||
|
||||
target_include_directories(marry PRIVATE src)
|
||||
target_include_directories(pingpang PRIVATE src)
|
||||
|
||||
# 链接 godot-cpp
|
||||
target_link_libraries(marry PRIVATE godot-cpp)
|
||||
target_link_libraries(pingpang 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"
|
||||
# 输出到 main/bin/ 目录(Godot 项目从这里加载 GDExtension)
|
||||
set_target_properties(pingpang PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/main/bin"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/main/bin"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/main/bin"
|
||||
PREFIX ""
|
||||
)
|
||||
|
||||
# VS 多配置生成器会输出到 bin/Release/ 等子目录,这里复制到 bin/ 根目录
|
||||
# 保证 .gdextension 里 res://bin/marry.dll 始终能找到
|
||||
add_custom_command(TARGET marry POST_BUILD
|
||||
# VS 多配置生成器会输出到子目录,这里复制到 main/bin/ 根目录
|
||||
add_custom_command(TARGET pingpang POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"$<TARGET_FILE:marry>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/bin/marry.dll"
|
||||
COMMENT "复制 marry.dll 到 bin/ 根目录"
|
||||
"$<TARGET_FILE:pingpang>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/main/bin/$<TARGET_FILE_NAME:pingpang>"
|
||||
COMMENT "复制 pingpang.dll 到 main/bin/ 根目录"
|
||||
)
|
||||
|
||||
在新工单中引用
屏蔽一个用户