-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathNekoEngine.cmake
More file actions
75 lines (63 loc) · 2.46 KB
/
Copy pathNekoEngine.cmake
File metadata and controls
75 lines (63 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#
# NekoEngine CMake Macros
#
if (NOT NE_SDK_PATH)
set(NE_SDK_PATH ${CMAKE_CURRENT_LIST_DIR})
endif()
macro(ne_sdk_init)
include_directories(${NE_SDK_PATH}/Include)
link_directories(${NE_SDK_PATH}/Lib)
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
endmacro()
macro(ne_finalize_executable target)
if(WIN32)
#target_sources(${target} ${NE_SDK_PATH}/Lib/NekoEngine.def)
target_link_libraries(${target} -WHOLEARCHIVE:${NE_SDK_PATH}/Lib/NekoEngine.lib
ntdll xinput9_1_0 wsock32 openal32
)
elseif(APPLE)
find_library(FOUNDATION Foundation)
find_library(METAL Metal)
find_library(AppKit AppKit)
find_library(COCOA Cocoa)
find_library(QUARTZCORE QuartzCore)
find_library(IOKIT IOKit)
find_library(GAMECONTROLLER GameController)
find_library(OPENAL OpenAL)
target_link_libraries(${target} ${FOUNDATION} ${APPKIT} ${METAL} ${COCOA} ${QUARTZCORE} ${IOKIT} ${GAMECONTROLLER} ${OPENAL} "-Wl,-all_load" NekoEngine)
file(GLOB_RECURSE res "${NE_SDK_PATH}/Resources/*")
foreach(file ${res})
file(RELATIVE_PATH rpath "${NE_SDK_PATH}/Resources" ${file})
get_filename_component(dpath ${rpath} DIRECTORY)
set_property(SOURCE ${file} PROPERTY MACOSX_PACKAGE_LOCATION "Resources/${dpath}")
source_group("Resources/${dpath}" FILES "${file}")
endforeach()
target_sources(${target} PRIVATE ${res})
set_target_properties(${target} PROPERTIES MACOSX_BUNDLE True)
#add_custom_command(TARGET ${target} POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy
# ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/default.metallib
# $<TARGET_BUNDLE_CONTENT_DIR:${target}>/Resources/default.metallib
#)
else()
target_link_libraries(${target} "-Wl,--allow-multiple-definition" "-Wl,--whole-archive" NekoEngine "-Wl,--no-whole-archive")
endif()
endmacro()
macro(ne_macos_appicon target icon)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND xcrun actool --compile ${CMAKE_CURRENT_BINARY_DIR} --platform macosx --minimum-deployment-target 13.0 --app-icon AppIcon --output-partial-info-plist temp.plist --output-format human-readable-text
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${CMAKE_CURRENT_BINARY_DIR}/Assets.car"
"$<TARGET_BUNDLE_CONTENT_DIR:${target}>/Resources/Assets.car"
)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${CMAKE_CURRENT_BINARY_DIR}/AppIcon.icns"
"$<TARGET_BUNDLE_CONTENT_DIR:${target}>/Resources/AppIcon.icns"
)
endmacro()