blob: 8c992610ccaad94953acac8477cb1160631b5d5d (
plain) (
blame)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
function(sprite)
set(options "")
set(multiValueArgs "")
set(oneValueArgs NAME X Y TRANSPARENT BPP CX CY)
cmake_parse_arguments(SPRITE "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
if(PS1_BUILD)
if(${SPRITE_TRANSPARENT})
set(trans -mpink)
endif()
if(NOT "${SPRITE_BPP}" STREQUAL "16")
set(clut "-clut=${SPRITE_CX},${SPRITE_CY}")
endif()
add_custom_target(${SPRITE_NAME}_img ALL
bmp2tim ${SPRITE_NAME}.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
${SPRITE_BPP} -org=${SPRITE_X},${SPRITE_Y} ${clut} ${trans}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${SPRITE_NAME}.bmp
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME})
add_dependencies(iso ${SPRITE_NAME}_img)
elseif(SDL1_2_BUILD)
if(${SPRITE_TRANSPARENT})
set(trans "transparent=1")
else()
set(trans "transparent=0")
endif()
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
COMMAND ${TOOLS_PREFIX}/bin/add-header ${trans} ${SPRITE_NAME}_24.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${SPRITE_NAME}_24.bmp
VERBATIM)
add_custom_target(${SPRITE_NAME}_img
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME})
add_dependencies(${PROJECT_NAME} ${SPRITE_NAME}_img)
add_dependencies(${SPRITE_NAME}_img tools)
elseif(ESP32_BUILD)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
COMMAND cp ${SPRITE_NAME}_24.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${SPRITE_NAME}_24.bmp
VERBATIM)
add_custom_target(${SPRITE_NAME}_img
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME})
add_dependencies(${PROJECT_NAME} ${SPRITE_NAME}_img)
endif()
endfunction()
function(sound)
set(options "")
set(multiValueArgs "")
set(oneValueArgs NAME LOOP)
cmake_parse_arguments(SOUND "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
if(PS1_BUILD)
if(${SOUND_LOOP})
set(loop -L)
endif()
add_custom_target(${SOUND_NAME}_snd ALL
wav2vag ${SOUND_NAME}.wav
${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME} ${loop}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${SOUND_NAME}.wav
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME})
add_dependencies(iso ${SOUND_NAME}_snd)
elseif(SDL1_2_BUILD)
if(${SOUND_LOOP})
set(loop "loop=1")
else()
set(loop "loop=0")
endif()
# Reference: https://gist.github.com/socantre/7ee63133a0a3a08f3990
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}
COMMAND ${TOOLS_PREFIX}/bin/add-header ${loop} ${SOUND_NAME}.wav ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${SOUND_NAME}.wav
VERBATIM)
add_custom_target(${SOUND_NAME}_snd
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME})
add_dependencies(${PROJECT_NAME} ${SOUND_NAME}_snd)
add_dependencies(${SOUND_NAME}_snd tools)
elseif(ESP32_BUILD)
add_custom_target(${SOUND_NAME}_snd
DEPENDS ${CMAKE_CURRENT_LIST_DIR}/${SOUND_NAME}.wav)
endif()
endfunction()
function(level)
set(options "")
set(multiValueArgs "")
set(oneValueArgs NAME)
cmake_parse_arguments(LEVEL "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
add_custom_command(OUTPUT ${cdroot}/${LEVEL_NAME}.txt
COMMAND cp ${LEVEL_NAME}.txt ${cdroot}/${LEVEL_NAME}.txt
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${LEVEL_NAME}.txt
VERBATIM)
add_custom_target(${LEVEL_NAME}_lvl
DEPENDS ${cdroot}/${LEVEL_NAME}.txt)
add_dependencies(${PROJECT_NAME} ${LEVEL_NAME}_lvl)
endfunction()
function(container)
set(options "")
set(multiValueArgs SPRITES SOUNDS)
set(oneValueArgs NAME)
cmake_parse_arguments(CONTAINER "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
add_custom_command(OUTPUT ${cdroot}/${CONTAINER_NAME}.cnt
COMMAND ${TOOLS_PREFIX}/bin/container ${CONTAINER_SPRITES} ${CONTAINER_SOUNDS}
${cdroot}/${CONTAINER_NAME}.cnt
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
VERBATIM)
add_custom_target(${CONTAINER_NAME}_container
DEPENDS ${cdroot}/${CONTAINER_NAME}.cnt)
add_dependencies(${PROJECT_NAME} ${CONTAINER_NAME}_container)
add_dependencies(${CONTAINER_NAME}_container tools)
foreach(sprite ${CONTAINER_SPRITES})
add_dependencies(${CONTAINER_NAME}_container ${sprite}_img)
endforeach()
foreach(sound ${CONTAINER_SOUNDS})
add_dependencies(${CONTAINER_NAME}_container ${sound}_snd)
endforeach()
if(PS1_BUILD)
add_dependencies(iso ${CONTAINER_NAME}_container)
endif()
endfunction()
|