@@ -86,20 +86,80 @@ add_custom_target(generate_rc DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/i18n.rc")
86
86
87
87
add_custom_target (copy_related_files
88
88
COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR} /src/lua/" "${CMAKE_BINARY_DIR} /bin/GCMZDrops/"
89
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR} /util/_transmap1.lua" "${CMAKE_BINARY_DIR} /bin/GCMZDrops/_transmap1.lua"
90
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR} /util/_transmap2.lua" "${CMAKE_BINARY_DIR} /bin/GCMZDrops/_transmap2.lua"
89
91
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR} /README.md" "${CMAKE_BINARY_DIR} /bin/GCMZDrops.txt"
90
92
)
91
93
94
+ set (is_clang "$<C_COMPILER_ID:Clang>" )
95
+ set (v16_or_later "$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,16>" )
96
+
97
+ add_library (gcmzdrops_intf INTERFACE )
98
+ target_include_directories (gcmzdrops_intf INTERFACE
99
+ "${CMAKE_CURRENT_BINARY_DIR} " # for version.h
100
+ "${jansson_BINARY_DIR} /include"
101
+ "${LUA51_INCLUDE} "
102
+ )
103
+ target_compile_definitions (gcmzdrops_intf INTERFACE
104
+ _WIN32_WINNT=0x0501
105
+ _WINDOWS
106
+ $<$<CONFIG:Release>:NDEBUG>
107
+ )
108
+ target_compile_options (gcmzdrops_intf INTERFACE
109
+ $<$<AND :$<BOOL :${WIN32} >,$<BOOL :${USE_COMPILER_RT} >>:--rtlib=compiler-rt>
110
+ -mstackrealign
111
+ -Wall
112
+ -Wextra
113
+ -Werror
114
+ -Weverything
115
+ -Wshadow
116
+ -Werror=return-type
117
+ -pedantic-errors
118
+ -Wno-declaration-after-statement
119
+ -Wno-padded
120
+ $<$<AND :${is_clang} ,${v16_or_later} >:-Wno-unsafe-buffer-usage>
121
+ -ffunction-sections
122
+ -fdata-sections
123
+ $<$<CONFIG:Debug>:-O0>
124
+ $<$<CONFIG:Release>:-O2>
125
+ -flto
126
+ )
127
+ target_link_options (gcmzdrops_intf INTERFACE
128
+ -fuse-ld=lld
129
+ -Wl,--gc-sections
130
+ # -Wl,--print-gc-sections
131
+ --rtlib=compiler-rt
132
+ -no -pthread
133
+ -static
134
+ -Wl,--kill-at
135
+ $<$<CONFIG:Release>:-s>
136
+ )
137
+ target_link_libraries (gcmzdrops_intf INTERFACE
138
+ comctl32
139
+ shlwapi
140
+ ovbase
141
+ ovutil
142
+ jansson
143
+ "${LUA51_DLL} "
144
+ )
145
+
146
+ add_library (gcmzdrops_test_intf INTERFACE )
147
+ target_compile_definitions (gcmzdrops_test_intf INTERFACE
148
+ TEST_IMAGE_DIR=${CMAKE_CURRENT_SOURCE_DIR} /test
149
+ )
150
+
92
151
add_library (crc64 STATIC 3rd/crc64/crc64.c)
93
- list ( APPEND targets crc64 )
152
+ target_link_libraries (crc64 PRIVATE gcmzdrops_intf )
94
153
add_library (detect STATIC 3rd/detect/detect.c)
95
- list ( APPEND targets detect )
154
+ target_link_libraries (detect PRIVATE gcmzdrops_intf )
96
155
97
- add_executable (gentransmap error_gcmz.c task.c luafuncs_convertencoding.c luautil.c util/gentransmap.c)
156
+ add_executable (gentransmap EXCLUDE_FROM_ALL error_gcmz.c task.c luafuncs_convertencoding.c luautil.c util/gentransmap.c)
157
+ target_link_libraries (gentransmap PRIVATE gcmzdrops_intf)
98
158
set_target_properties (gentransmap PROPERTIES
99
159
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /util"
100
160
)
101
- list (APPEND targets gentransmap)
102
161
add_dependencies (gentransmap generate_version_h)
162
+
103
163
add_custom_target (generate_transmap
104
164
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR} /src/lua/_iniobj.lua" "_iniobj.lua"
105
165
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR} /util/gentransmap.lua" "gentransmap.lua"
@@ -108,15 +168,15 @@ add_custom_target(generate_transmap
108
168
"gentransmap"
109
169
"${CMAKE_CURRENT_SOURCE_DIR} /util/0.exo" 932
110
170
"${CMAKE_CURRENT_SOURCE_DIR} /util/1.exo" 932
111
- "${CMAKE_BINARY_DIR} /bin/GCMZDrops /_transmap1.lua"
171
+ "${CMAKE_CURRENT_SOURCE_DIR} /util /_transmap1.lua"
112
172
COMMAND
113
173
"gentransmap"
114
174
"${CMAKE_CURRENT_SOURCE_DIR} /util/0.exo" 932
115
175
"${CMAKE_CURRENT_SOURCE_DIR} /util/2.exo" 936
116
- "${CMAKE_BINARY_DIR} /bin/GCMZDrops /_transmap2.lua"
176
+ "${CMAKE_CURRENT_SOURCE_DIR} /util /_transmap2.lua"
117
177
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /util"
118
178
)
119
- add_dependencies (generate_transmap gentransmap copy_related_files )
179
+ add_dependencies (generate_transmap gentransmap)
120
180
121
181
add_library (gcmzdrops_auf SHARED
122
182
api.c
@@ -146,78 +206,23 @@ set_target_properties(gcmzdrops_auf PROPERTIES
146
206
SUFFIX ""
147
207
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin"
148
208
)
149
- add_dependencies (gcmzdrops_auf generate_version_h generate_rc copy_related_files generate_transmap)
150
- list (APPEND targets gcmzdrops_auf)
209
+ add_dependencies (gcmzdrops_auf generate_version_h generate_rc copy_related_files)
151
210
target_link_options (gcmzdrops_auf PRIVATE
211
+ gcmzdrops_intf
152
212
-Wl,-delayload,lua51.dll
153
213
)
154
214
155
215
add_executable (datauri_test error_gcmz.c task.c sniffer.c datauri_test.c)
216
+ target_link_libraries (gentransmap PRIVATE gcmzdrops_intf gcmzdrops_test_intf)
156
217
add_dependencies (datauri_test generate_version_h)
157
- list (APPEND targets datauri_test)
218
+ add_test (NAME datauri_test COMMAND datauri_test)
219
+
158
220
add_executable (gcmzfuncs_test error_gcmz.c task.c gcmzfuncs_test.c)
221
+ target_link_libraries (gcmzfuncs_test PRIVATE gcmzdrops_intf gcmzdrops_test_intf)
159
222
add_dependencies (gcmzfuncs_test generate_version_h)
160
- list (APPEND targets gcmzfuncs_test)
223
+ add_test (NAME gcmzfuncs_test COMMAND gcmzfuncs_test)
224
+
161
225
add_executable (luafuncs_test error_gcmz.c task.c files .c luautil.c luafuncs_test.c)
226
+ target_link_libraries (luafuncs_test PRIVATE gcmzdrops_intf gcmzdrops_test_intf)
162
227
add_dependencies (luafuncs_test generate_version_h)
163
- list (APPEND targets luafuncs_test)
164
-
165
- set (is_clang "$<C_COMPILER_ID:Clang>" )
166
- set (v16_or_later "$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,16>" )
167
- foreach (target ${targets} )
168
- if (target MATCHES "_test$" )
169
- add_test (NAME ${target} COMMAND ${target} )
170
- target_compile_definitions (${target} PRIVATE
171
- TEST_IMAGE_DIR=${CMAKE_CURRENT_SOURCE_DIR} /test
172
- )
173
- endif ()
174
- target_include_directories (${target} PRIVATE
175
- "${CMAKE_CURRENT_BINARY_DIR} " # for version.h
176
- "${jansson_BINARY_DIR} /include"
177
- "${LUA51_INCLUDE} "
178
- )
179
- target_compile_definitions (${target} PRIVATE
180
- _WIN32_WINNT=0x0501
181
- _WINDOWS
182
- $<$<CONFIG:Release>:NDEBUG>
183
- )
184
- target_compile_options (${target} PRIVATE
185
- $<$<AND :$<BOOL :${WIN32} >,$<BOOL :${USE_COMPILER_RT} >>:--rtlib=compiler-rt>
186
- -mstackrealign
187
- -Wall
188
- -Wextra
189
- -Werror
190
- -Weverything
191
- -Wshadow
192
- -Werror=return-type
193
- -pedantic-errors
194
- -Wno-declaration-after-statement
195
- -Wno-padded
196
- $<$<AND :${is_clang} ,${v16_or_later} >:-Wno-unsafe-buffer-usage>
197
- -ffunction-sections
198
- -fdata-sections
199
- $<$<CONFIG:Debug>:-O0>
200
- $<$<CONFIG:Release>:-O2>
201
- -flto
202
- )
203
- target_link_options (${target} PRIVATE
204
- -fuse-ld=lld
205
- -Wl,--gc-sections
206
- # -Wl,--print-gc-sections
207
- --rtlib=compiler-rt
208
- -no -pthread
209
- -static
210
- -Wl,--kill-at
211
- $<$<CONFIG:Release>:-s>
212
- )
213
- target_link_libraries (${target} PRIVATE
214
- comctl32
215
- $<$<NOT :$<STREQUAL :${target} ,crc64>>:crc64>
216
- $<$<NOT :$<STREQUAL :${target} ,detect>>:detect>
217
- jansson
218
- "${LUA51_DLL} "
219
- ovbase
220
- ovutil
221
- shlwapi
222
- )
223
- endforeach (target )
228
+ add_test (NAME luafuncs_test COMMAND luafuncs_test)
0 commit comments