X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=CMakeLists.txt;h=8b39269c541acb097fb8225fe8bbf4ab9b12055c;hb=0fe13d754753dfd234564b3cebe821b718d6105c;hp=2f21c6ddcf84700958c8328c0841bccf85fb56f0;hpb=1b7ae763cdb4c13953b0791d64907a34072b38de;p=nothing.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f21c6dd..8b39269c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,26 +2,29 @@ cmake_minimum_required(VERSION 3.2) project(nothing) if(WIN32) - # Conan integration - include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) - conan_basic_setup() -endif() + set(SDL2_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/SDL2/include") + + # Support both 32 and 64 bit builds + if (${CMAKE_SIZEOF_VOID_P} MATCHES 8) + set(SDL2_LIBRARIES "${CMAKE_SOURCE_DIR}/SDL2/lib/x64/SDL2.lib;${CMAKE_SOURCE_DIR}/SDL2/lib/x64/SDL2main.lib") + else() + set(SDL2_LIBRARIES "${CMAKE_SOURCE_DIR}/SDL2/lib/x86/SDL2.lib;${CMAKE_SOURCE_DIR}/SDL2/lib/x86/SDL2main.lib") + endif() -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) + string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES) +else() + find_package(SDL2 REQUIRED) +endif() -find_package(SDL2 REQUIRED) -find_package(SDL2_mixer REQUIRED) +if("${SDL2_LIBRARIES}" STREQUAL "") + message(WARNING "SDL2_LIBRARIES wasn't set, manually setting to SDL2::SDL2") + set(SDL2_LIBRARIES "SDL2::SDL2") +endif() include_directories(${CMAKE_BINARY_DIR}) include_directories(src/) -if(APPLE) - include_directories(${SDL2_INCLUDE_DIR}/..) -else() - include_directories(${SDL2_INCLUDE_DIR}) -endif() - -include_directories(${SDL2_MIXER_INCLUDE_DIR}) +include_directories(${SDL2_INCLUDE_DIRS}) add_library(system STATIC src/system/line_stream.c @@ -30,12 +33,7 @@ add_library(system STATIC src/system/log.h src/system/log_script.c src/system/log_script.h - src/system/lt.c src/system/lt.h - src/system/lt/lt_adapters.c - src/system/lt/lt_adapters.h - src/system/lt/lt_slot.c - src/system/lt/lt_slot.h src/system/nth_alloc.c src/system/nth_alloc.h src/system/stacktrace.c @@ -44,8 +42,8 @@ add_library(system STATIC src/system/str.h src/dynarray.h src/dynarray.c - src/linked_list.h - src/linked_list.c + src/hashset.h + src/hashset.c ) add_library(ebisp STATIC @@ -66,9 +64,9 @@ add_library(ebisp STATIC src/ebisp/tokenizer.c src/ebisp/tokenizer.h ) +target_link_libraries(ebisp system) add_executable(nothing - broadcast_lisp.h src/broadcast.c src/broadcast.h src/color.c @@ -105,6 +103,8 @@ add_executable(nothing src/game/level/script.h src/game/level_picker.c src/game/level_picker.h + src/game/level_folder.h + src/game/level_folder.c src/game/sound_samples.c src/game/sound_samples.h src/game/sprite_font.c @@ -125,6 +125,8 @@ add_executable(nothing src/math/triangle.h src/sdl/renderer.c src/sdl/renderer.h + src/sdl/texture.h + src/sdl/texture.c src/ui/console.c src/ui/console.h src/ui/console_log.c @@ -133,33 +135,47 @@ add_executable(nothing src/ui/edit_field.h src/ui/history.c src/ui/history.h + src/ui/list_selector.h + src/ui/list_selector.c + src/ui/menu_title.h + src/ui/menu_title.c + src/game/level_metadata.h + src/game/level_metadata.c + src/game/level/level_editor/proto_rect.h + src/game/level/level_editor/proto_rect.c + src/game/level/level_editor.h + src/game/level/level_editor.c + src/game/level/level_editor/color_picker.h + src/game/level/level_editor/color_picker.c + src/game/level/level_editor/rect_layer.h + src/game/level/level_editor/rect_layer.c + src/game/level/level_editor/layer_picker.h + src/game/level/level_editor/layer_picker.c + src/game/level/level_editor/point_layer.h + src/game/level/level_editor/point_layer.c + src/game/level/level_editor/player_layer.h + src/game/level/level_editor/player_layer.c + src/game/level/level_editor/layer.h + src/game/level/level_editor/layer.c + src/game/level/level_editor/label_layer.c + src/game/level/level_editor/label_layer.h + src/system/file.h + src/system/file.c ) - -add_custom_command( - OUTPUT broadcast_lisp.h - COMMAND ${CMAKE_BINARY_DIR}/baker ${CMAKE_SOURCE_DIR}/src/broadcast.lisp broadcast_lisp.h broadcast_lisp_library - DEPENDS baker src/broadcast.lisp) +target_link_libraries(nothing ${SDL2_LIBRARIES} system ebisp) add_executable(repl src/ebisp/repl.c src/ebisp/repl_runtime.c ) - -add_executable(baker - src/ebisp/baker.c - ) +target_link_libraries(repl ${SDL2_LIBRARIES} system ebisp) add_executable(nothing_test test/main.c test/test.h test/tokenizer_suite.h ) - -target_link_libraries(nothing ${SDL2_LIBRARY} ${SDL2_MIXER_LIBRARY} m system ebisp) -target_link_libraries(nothing_test ${SDL2_LIBRARY} ${SDL2_MIXER_LIBRARY} m system ebisp) -target_link_libraries(repl ${SDL2_LIBRARY} ${SDL2_MIXER_LIBRARY} m system ebisp) -target_link_libraries(ebisp system) -target_link_libraries(baker m system ebisp) +target_link_libraries(nothing_test ${SDL2_LIBRARIES} system ebisp) if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "CLANG")) set(CMAKE_C_FLAGS @@ -190,13 +206,29 @@ if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" ST -fno-common \ -pedantic \ -std=c11 \ + -ggdb \ -O3") target_link_libraries(nothing m) +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} \ + /Wall \ + /WX \ + /wd4127 \ + /wd4201 \ + /wd4204 \ + /wd4255 \ + /wd4389 \ + /wd4668 \ + /wd4702 \ + /wd4710 \ + /wd4777 \ + /wd4820 \ + /wd5045 \ + /D \"_CRT_SECURE_NO_WARNINGS\"") endif() if(WIN32) target_link_libraries(nothing Imm32 Version winmm) endif() -file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/sounds DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/fonts DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test-data DESTINATION ${CMAKE_CURRENT_BINARY_DIR})