@@ -56,6 +56,10 @@ if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
5656 set (OSX 1)
5757endif ()
5858
59+ if (APPLE )
60+ enable_language (OBJC )
61+ endif ()
62+
5963set (default_build_type "Release" )
6064if (NOT CMAKE_BUILD_TYPE AND default_build_type)
6165 message ( STATUS "Setting default buildtype to '${default_build_type} ' as none was specified" )
@@ -95,61 +99,61 @@ ELSEIF ( WIN32 )
9599 "${CMAKE_C_FLAGS_RELEASE} -mwindows"
96100 )
97101ENDIF ()
98- # IF ( GCC )
99- # SET (
100- # CMAKE_C_FLAGS_DEBUG
101- # "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address -fno-omit-frame-pointer"
102- # )
103- # ENDIF ( GCC )
102+ IF ( GCC AND NOT MINGW )
103+ SET (
104+ CMAKE_C_FLAGS_DEBUG
105+ "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address -fno-omit-frame-pointer"
106+ )
107+ ENDIF ()
104108
105109if (STEAM)
106110 include_directories (
107111 lib/steamworks_c_wrapper/src
108112 )
109113endif ()
110114
111- # Include SDL2
115+ # Include SDL
112116set (SDL_STATIC ON )
113117set (SDL_SHARED OFF )
114118set (SDL_TEST OFF )
115119add_subdirectory (lib/SDL )
116- set (SDL2_INCLUDE_DIR lib/SDL/include)
117- set (SDL2_LIBRARY SDL2-static)
118- set (SDL2_MAIN_LIBRARY SDL2main)
120+ set (SDL_INCLUDE_DIR lib/SDL/include)
121+ set (SDL_LIBRARY SDL3-static)
119122
120- # Include SDL2_image /mixer/ttf
123+ # Include SDL_image /mixer/ttf
121124set (BUILD_SHARED_LIBS OFF )
122125
123- set (SDL2IMAGE_PNG ON )
124- set (SDL2IMAGE_JPG ON )
125- set (SDL2IMAGE_AVIF OFF )
126- set (SDL2IMAGE_BMP OFF )
127- set (SDL2IMAGE_GIF OFF )
128- set (SDL2IMAGE_JXL OFF )
129- set (SDL2IMAGE_LBM OFF )
130- set (SDL2IMAGE_PCX OFF )
131- set (SDL2IMAGE_PNM OFF )
132- set (SDL2IMAGE_QOI OFF )
133- set (SDL2IMAGE_SVG OFF )
134- set (SDL2IMAGE_TGA OFF )
135- set (SDL2IMAGE_TIF OFF )
136- set (SDL2IMAGE_WEBP OFF )
137- set (SDL2IMAGE_XCF OFF )
138- set (SDL2IMAGE_XPM OFF )
139- set (SDL2IMAGE_XV OFF )
126+ set (SDLIMAGE_PNG ON )
127+ set (SDLIMAGE_JPG ON )
128+ set (SDLIMAGE_AVIF OFF )
129+ set (SDLIMAGE_BMP OFF )
130+ set (SDLIMAGE_GIF OFF )
131+ set (SDLIMAGE_JXL OFF )
132+ set (SDLIMAGE_LBM OFF )
133+ set (SDLIMAGE_PCX OFF )
134+ set (SDLIMAGE_PNM OFF )
135+ set (SDLIMAGE_QOI OFF )
136+ set (SDLIMAGE_SVG OFF )
137+ set (SDLIMAGE_TGA OFF )
138+ set (SDLIMAGE_TIF OFF )
139+ set (SDLIMAGE_WEBP OFF )
140+ set (SDLIMAGE_XCF OFF )
141+ set (SDLIMAGE_XPM OFF )
142+ set (SDLIMAGE_XV OFF )
140143add_subdirectory (lib/SDL_image )
141- set (SDL2_IMAGE_INCLUDE_DIR lib/SDL_image/include)
142- set (SDL2_IMAGE_LIBRARY SDL2_image )
144+ set (SDL_IMAGE_INCLUDE_DIR lib/SDL_image/include)
145+ set (SDL_IMAGE_LIBRARY SDL3_image-static )
143146
144147# opusfile caused issues in macos build and we don't need it anyways
145- set (SDL2MIXER_OPUS OFF )
148+ set (SDLMIXER_OPUS OFF )
146149add_subdirectory (lib/SDL_mixer )
147- set (SDL2_MIXER_INCLUDE_DIR lib/SDL_mixer/include)
148- set (SDL2_MIXER_LIBRARY SDL2_mixer )
150+ set (SDL_MIXER_INCLUDE_DIR lib/SDL_mixer/include)
151+ set (SDL_MIXER_LIBRARY SDL3_mixer-static )
149152
153+ set (SDLTTF_VENDORED ON )
150154add_subdirectory (lib/SDL_ttf )
151- set (SDL2_TTF_INCLUDE_DIR lib/SDL_ttf/include)
152- set (SDL2_TTF_LIBRARY SDL2_ttf )
155+ set (SDL_TTF_INCLUDE_DIR lib/SDL_ttf/include)
156+ set (SDL_TTF_LIBRARY SDL3_ttf-static )
153157
154158# Include lua lib
155159add_subdirectory (lib/lua-5.3.5 )
@@ -164,38 +168,12 @@ include_directories(lib/physfs-3.0/src)
164168set (PHYSFS_LIBRARY physfs-static)
165169set (PHYSFS_INCLUDE_DIR physfs-3.0/src)
166170
167- include_directories (
168- ${PROJECT_BINARY_DIR}
169- ${SDL2_INCLUDE_DIR}
170- ${SDL2_IMAGE_INCLUDE_DIR}
171- ${SDL2_TTF_INCLUDE_DIR}
172- ${SDL2_MIXER_INCLUDE_DIR}
173- ${PHYSFS_INCLUDE_DIR}
174- ${LUA_INCLUDE_DIR}
175- lib/sqlite3
176- lib/bh_random/src
177- lib/checksum/src
178- )
179-
180171if (CMOCKA_FOUND)
181172 include_directories (
182173 ${CMOCKA_INCLUDE_DIR}
183174 )
184175endif (CMOCKA_FOUND )
185176
186- if (NOT MSVC )
187- add_definitions (-std=gnu11
188- -pedantic -Wall -Wextra -Wshadow
189- -Wpointer-arith -Wcast-qual
190- -Wstrict-prototypes
191- -Wmissing-prototypes
192- -Wconversion -Wno-sign-conversion
193- )
194- if (NOT APPLE )
195- add_definitions (-static -static-libgcc -static-libstdc++ )
196- endif ()
197- endif (NOT MSVC )
198-
199177set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG" )
200178if (STEAM)
201179 set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSTEAM_BUILD" )
@@ -273,10 +251,39 @@ add_executable(breakhack
273251 src /object .c
274252 src /gui_util .c
275253 src /tooltip .c
254+ src /tooltip_manager .c
276255 src /gamecontroller .c
277256 src /effect_util .c
278257 ${STEAM_SOURCES}
279258 )
259+ set_property (TARGET breakhack PROPERTY C_STANDARD 99)
260+
261+ set (INCLUDE_DIRS
262+ ${PROJECT_BINARY_DIR}
263+ ${SDL_INCLUDE_DIR}
264+ ${SDL_IMAGE_INCLUDE_DIR}
265+ ${SDL_TTF_INCLUDE_DIR}
266+ ${SDL_MIXER_INCLUDE_DIR}
267+ ${PHYSFS_INCLUDE_DIR}
268+ ${LUA_INCLUDE_DIR}
269+ lib /sqlite3
270+ lib /bh_random /src
271+ lib /checksum /src
272+ )
273+
274+ target_include_directories (breakhack PRIVATE ${INCLUDE_DIRS} )
275+
276+ if (NOT MSVC )
277+ set_target_properties (breakhack PROPERTIES COMPILE_FLAGS
278+ -std =gnu11 -pedantic -Wall -Wextra -Wshadow
279+ -Wpointer -arith -Wcast -qual -Wstrict -prototypes
280+ -Wmissing -prototypes -Wconversion -Wno -sign -conversion
281+ )
282+ if (NOT APPLE )
283+ add_definitions (-static -static -libgcc -static -libstdc ++)
284+ endif ()
285+ endif (NOT MSVC )
286+
280287
281288if (MSVC )
282289 source_group ("Header files " REGULAR_EXPRESSION ".*\\.h ")
@@ -288,22 +295,16 @@ set_source_files_properties(lib/sqlite3/sqlite3.c COMPILE_FLAGS -w)
288295
289296target_link_libraries (breakhack
290297 ${CMAKE_DL_LIBS} # Sqlite needs DL libs
291- ${SDL2_LIBRARY }
292- ${SDL2_IMAGE_LIBRARY }
293- ${SDL2_TTF_LIBRARY }
294- ${SDL2_MIXER_LIBRARY }
298+ ${SDL_LIBRARY }
299+ ${SDL_IMAGE_LIBRARY }
300+ ${SDL_TTF_LIBRARY }
301+ ${SDL_MIXER_LIBRARY }
295302 ${LUA_LIBRARIES}
296303 ${PHYSFS_LIBRARY}
297304 bh_random
298305 checksum
299306 )
300307
301- if (MSVC OR MINGW )
302- target_link_libraries (breakhack
303- ${SDL2_MAIN_LIBRARY}
304- )
305- endif ()
306-
307308if (STEAM )
308309 target_link_libraries (breakhack
309310 ${STEAMWORKS_LIBRARY}
@@ -325,24 +326,26 @@ IF (CMOCKA_FOUND AND NOT OSX AND NOT CLANG)
325326 find_package (Threads REQUIRED )
326327 enable_testing ()
327328 add_executable (test_util test /test_util .c src /util .c )
329+ target_include_directories (test_util PRIVATE ${INCLUDE_DIRS} )
328330 target_link_libraries (test_util ${CMOCKA_LIBRARY} )
329331 add_test (test_util test_util )
330332
331333 add_executable (test_linkedlist test /test_linkedlist .c src /linkedlist .c src /util .c )
334+ target_include_directories (test_linkedlist PRIVATE ${INCLUDE_DIRS} )
332335 target_link_libraries (test_linkedlist ${CMOCKA_LIBRARY} )
333336 add_test (test_linkedlist test_linkedlist )
334337
335338 add_executable (test_hashtable test /test_hashtable .c src /hashtable .c src /util .c )
339+ target_include_directories (test_hashtable PRIVATE ${INCLUDE_DIRS} )
336340 target_link_libraries (test_hashtable ${CMOCKA_LIBRARY} )
337341 add_test (test_hashtable test_hashtable )
338342
339343 add_executable (test_input test /test_input .c src /input .c src /keyboard .c )
344+ target_include_directories (test_input PRIVATE ${INCLUDE_DIRS} )
340345 target_link_libraries (test_input
341346 ${CMOCKA_LIBRARY}
342- ${SDL2_LIBRARY }
347+ ${SDL_LIBRARY }
343348 )
344- #set_target_properties (test_input PROPERTIES
345- #LINK_FLAGS "-Wl ,--wrap ,keyboard_direction_press -Wl ,--wrap ,keyboard_press ")
346349 add_test (test_input test_input )
347350ENDIF ()
348351
0 commit comments