141 lines
3.1 KiB
CMake
141 lines
3.1 KiB
CMake
# yaze source files -----------------------------------------------------------
|
|
set(
|
|
YAZE_APP_CORE_SRC
|
|
app/core/common.cc
|
|
app/core/controller.cc
|
|
)
|
|
|
|
set(
|
|
YAZE_APP_EDITOR_SRC
|
|
app/editor/assembly_editor.cc
|
|
app/editor/dungeon_editor.cc
|
|
app/editor/graphics_editor.cc
|
|
app/editor/master_editor.cc
|
|
app/editor/music_editor.cc
|
|
app/editor/overworld_editor.cc
|
|
app/editor/palette_editor.cc
|
|
app/editor/screen_editor.cc
|
|
app/editor/sprite_editor.cc
|
|
)
|
|
|
|
set(
|
|
YAZE_APP_GFX_SRC
|
|
app/gfx/bitmap.cc
|
|
app/gfx/compression.cc
|
|
app/gfx/snes_palette.cc
|
|
app/gfx/snes_tile.cc
|
|
)
|
|
|
|
set(
|
|
YAZE_APP_ZELDA3_SRC
|
|
app/zelda3/overworld_map.cc
|
|
app/zelda3/overworld.cc
|
|
app/zelda3/screen/inventory.cc
|
|
app/zelda3/screen/title_screen.cc
|
|
app/zelda3/sprite/sprite.cc
|
|
app/zelda3/music/tracker.cc
|
|
app/zelda3/dungeon/room.cc
|
|
)
|
|
|
|
set(
|
|
YAZE_GUI_SRC
|
|
app/gui/canvas.cc
|
|
app/gui/input.cc
|
|
app/gui/style.cc
|
|
app/gui/widgets.cc
|
|
app/gui/color.cc
|
|
)
|
|
|
|
set(
|
|
YAZE_VIEWER_SRC
|
|
app/viewer/cgx_viewer.cc
|
|
)
|
|
|
|
# executable creation ---------------------------------------------------------
|
|
|
|
add_executable(
|
|
yaze
|
|
app/yaze.cc
|
|
app/rom.cc
|
|
${YAZE_APP_CORE_SRC}
|
|
${YAZE_APP_EDITOR_SRC}
|
|
${YAZE_APP_GFX_SRC}
|
|
${YAZE_APP_ZELDA3_SRC}
|
|
${YAZE_GUI_SRC}
|
|
${YAZE_VIEWER_SRC}
|
|
# ${ASAR_STATIC_SRC}
|
|
# ${SNES_SPC_SOURCES}
|
|
${IMGUI_SRC}
|
|
)
|
|
|
|
# including libraries ---------------------------------------------------------
|
|
|
|
target_include_directories(
|
|
yaze PUBLIC
|
|
lib/
|
|
app/
|
|
${CMAKE_SOURCE_DIR}/src/
|
|
${PNG_INCLUDE_DIRS}
|
|
${SDL2_INCLUDE_DIR}
|
|
lib/SDL_mixer/include/
|
|
${GLEW_INCLUDE_DIRS}
|
|
# lib/asar/src/asar/
|
|
# lib/snes_spc/snes_spc/
|
|
)
|
|
|
|
set(SDL_TARGETS SDL2::SDL2)
|
|
|
|
if(WIN32 OR MINGW)
|
|
list(PREPEND SDL_TARGETS SDL2::SDL2main)
|
|
add_definitions(-DSDL_MAIN_HANDLED)
|
|
endif()
|
|
|
|
# linking libraries -----------------------------------------------------------
|
|
|
|
target_link_libraries(
|
|
yaze PUBLIC
|
|
${ABSL_TARGETS}
|
|
${SDL_TARGETS}
|
|
${SDLMIXER_LIBRARY}
|
|
SDL2_mixer
|
|
${PNG_LIBRARIES}
|
|
${GLEW_LIBRARIES}
|
|
${OPENGL_LIBRARIES}
|
|
${CMAKE_DL_LIBS}
|
|
# asar-static
|
|
# snes_spc
|
|
ImGui
|
|
)
|
|
|
|
if (UNIX)
|
|
target_compile_definitions(yaze PRIVATE "linux")
|
|
target_compile_definitions(yaze PRIVATE "stricmp=strcasecmp")
|
|
endif()
|
|
|
|
if(MACOS)
|
|
set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/yaze.ico)
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
BUNDLE True
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
# MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/yaze.plist.in
|
|
)
|
|
elseif(UNIX)
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
BUNDLE True
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
)
|
|
else()
|
|
set_target_properties(yaze
|
|
PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
LINK_FLAGS "${CMAKE_CURRENT_SOURCE_DIR}/yaze.res"
|
|
)
|
|
endif() |