@@ -7,35 +7,51 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
77
88# creative-engine path
99if (EXISTS $ENV{CREATIVE_ENGINE_PATH} )
10- # set ENV variable in CLion project settings
11- set (CREATIVE_ENGINE_PATH $ENV{CREATIVE_ENGINE_PATH} )
12- message (STATUS "Using user-defined creative-engine path: ${CREATIVE_ENGINE_PATH} " )
13- else ()
10+ # set ENV variable in CLion project settings
11+ set (CREATIVE_ENGINE_PATH $ENV{CREATIVE_ENGINE_PATH} )
12+ # message(STATUS "********************************* Using user-defined creative-engine path: ${CREATIVE_ENGINE_PATH}")
13+ else ()
1414 set (CREATIVE_ENGINE_PATH "${CMAKE_SOURCE_DIR} /../creative-engine" )
15- message (STATUS "Falling back to default creative-engine path: ${CREATIVE_ENGINE_PATH} " )
16- endif ()
15+ # message(STATUS "<<<<<<<<<<<<<<<<<<<<<<<<<< Falling back to default creative-engine path: ${CREATIVE_ENGINE_PATH}")
16+ endif ()
1717
1818# resource compiler
1919set (RCOMP "${CREATIVE_ENGINE_PATH} /tools/rcomp" )
2020
2121INCLUDE_DIRECTORIES (
22- ${SDL2_INCLUDE_DIRS}
23- ${SDL2IMAGE_INCLUDE_DIRS}
24- ${CMAKE_SOURCE_DIR} /src
25- ${CMAKE_CURRENT_SOURCE_DIR} /src
26- ${CMAKE_BINARY_DIR} /usr/local/include
27- ${CREATIVE_ENGINE_PATH} /src
28- ${CREATIVE_ENGINE_PATH} /src/Widgets
29- ${CREATIVE_ENGINE_PATH} /src/libxmp
30- ${CREATIVE_ENGINE_PATH} /src/libxmp/loaders
31- ${CREATIVE_ENGINE_PATH} /src/libxmp/loaders/prowizarde
22+ ${SDL2_INCLUDE_DIRS}
23+ ${SDL2IMAGE_INCLUDE_DIRS}
24+ ${CMAKE_SOURCE_DIR} /src
25+ ${CMAKE_SOURCE_DIR} /src/GameState
26+ ${CMAKE_SOURCE_DIR} /src/GameState/Playfields
27+ ${CMAKE_SOURCE_DIR} /src/GameState/Powerups
28+ ${CMAKE_SOURCE_DIR} /src/GameOverState
29+ ${CMAKE_SOURCE_DIR} /src/HighScoresState
30+ ${CMAKE_SOURCE_DIR} /src/MainMenuState
31+ ${CMAKE_SOURCE_DIR} /src/MainOptionsState
32+ ${CMAKE_SOURCE_DIR} /src/SplashState
33+ ${CMAKE_SOURCE_DIR} /src/RulesState
34+ ${CMAKE_BINARY_DIR} /usr/local/include
35+ ${CREATIVE_ENGINE_PATH} /src
36+ ${CREATIVE_ENGINE_PATH} /src/Widgets
37+ ${CREATIVE_ENGINE_PATH} /src/libxmp
38+ ${CREATIVE_ENGINE_PATH} /src/libxmp/loaders
39+ ${CREATIVE_ENGINE_PATH} /src/libxmp/loaders/prowizarde
3240)
3341
3442# external libraries
3543INCLUDE (FindPkgConfig)
3644PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
3745PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)
3846
47+ # include creative-engine sources
48+ # when using out-of-tree source paths add_subdirectory's build_dir argument is required
49+ # use the project's current build directory
50+ # https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_BINARY_DIR.html
51+ # https://cmake.org/cmake/help/latest/command/add_subdirectory.html
52+ # https://stackoverflow.com/questions/35260552/how-do-i-explicitly-specify-an-out-of-tree-source-in-cmake
53+ add_subdirectory (${CREATIVE_ENGINE_PATH} ${CMAKE_CURRENT_BINARY_DIR} /creative-engine)
54+
3955# build rcomp
4056add_custom_command (
4157 OUTPUT rcomp
@@ -58,25 +74,23 @@ file(GLOB_RECURSE CREATIVE_ENGINE ${CREATIVE_ENGINE_PATH}/src/*.cpp)
5874
5975# gather LibXMP sources
6076add_compile_definitions (LIBXMP_CORE_PLAYER=true )
61- add_compile_definitions (LIBXMP_CORE_DISABLE_IT= true )
77+
6278file (
6379 GLOB LIBXMP_SRC
64- ${CREATIVE_ENGINE_PATH} /src/libxmp/loaders/*.h
6580 ${CREATIVE_ENGINE_PATH} /src/libxmp/loaders/*.c
66- ${CREATIVE_ENGINE_PATH} /src/libxmp/*.h
6781 ${CREATIVE_ENGINE_PATH} /src/libxmp/*.c
6882)
6983
7084# gather Genus sources
7185file (GLOB_RECURSE GENUS_SRC RELATIVE ${CMAKE_SOURCE_DIR} "src/*.cpp" )
7286
7387add_executable (
74- genus
75- Resources.bin
76- ${LIBXMP_SRC}
77- ${CREATIVE_ENGINE}
78- ${GENUS_SRC}
79- )
88+ genus
89+ Resources.bin
90+ ${LIBXMP_SRC}
91+ ${CREATIVE_ENGINE}
92+ ${GENUS_SRC}
93+ )
8094
8195# make genus.app
8296if (APPLE )
0 commit comments