81 lines
2.8 KiB
CMake
81 lines
2.8 KiB
CMake
# CMake Specifications --------------------------------------------------------
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
# Yet Another Zelda3 Editor
|
|
# by scawful
|
|
project(yaze VERSION 0.01)
|
|
|
|
# C++ Standard Specifications -------------------------------------------------
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS ON)
|
|
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
set(CMAKE_MODULE_LINKER_FLAGS \"-Wl,--no-undefined -Wl,--no-undefined\")
|
|
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
|
set(BUILD_SHARED_LIBS ON)
|
|
|
|
# Abseil Standard Specifications ----------------------------------------------
|
|
include(cmake/absl.cmake)
|
|
add_subdirectory(src/lib/abseil-cpp)
|
|
|
|
include(cmake/openssl.cmake)
|
|
set(Protobuf_PROTOC_EXECUTABLE "/Users/scawful/code/protobuf/bin/protoc")
|
|
set(Protobuf_INCLUDE_DIRS "/Users/scawful/code/protobuf/include/")
|
|
set(PROTOBUF_INCLUDE_PATH ${CMAKE_CURRENT_BINARY_DIR}
|
|
CACHE INTERNAL "Path to generated protobuf files.")
|
|
include_directories(${PROTOBUF_INCLUDE_PATH})
|
|
|
|
# Video Libraries -------------------------------------------------------------
|
|
find_package(PNG REQUIRED)
|
|
find_package(OpenGL REQUIRED)
|
|
find_package(GLEW REQUIRED)
|
|
|
|
# SDL2 ------------------------------------------------------------------------
|
|
if (UNIX)
|
|
add_subdirectory(src/lib/SDL)
|
|
else()
|
|
find_package(SDL2)
|
|
endif()
|
|
set(SDL2MIXER_OPUS OFF)
|
|
set(SDL2MIXER_FLAC OFF)
|
|
set(SDL2MIXER_MOD OFF)
|
|
set(SDL2MIXER_MIDI_FLUIDSYNTH OFF)
|
|
find_library(SDL_MIXER_LIBRARY
|
|
NAMES SDL_mixer
|
|
HINTS
|
|
ENV SDLMIXERDIR
|
|
ENV SDLDIR
|
|
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
|
|
)
|
|
add_subdirectory(src/lib/SDL_mixer)
|
|
|
|
# Asar ------------------------------------------------------------------------
|
|
add_subdirectory(src/lib/asar/src)
|
|
include(cmake/asar.cmake)
|
|
|
|
# snes-spc --------------------------------------------------------------------
|
|
ADD_DEFINITIONS(-DSNES_SPC_EXPORTS)
|
|
set(SNES_SPC_SOURCES
|
|
"../src/lib/snes_spc/snes_spc/spc.cpp"
|
|
"../src/lib/snes_spc/snes_spc/SNES_SPC.cpp"
|
|
"../src/lib/snes_spc/snes_spc/SNES_SPC_misc.cpp"
|
|
"../src/lib/snes_spc/snes_spc/SNES_SPC_state.cpp"
|
|
"../src/lib/snes_spc/snes_spc/SPC_DSP.cpp"
|
|
"../src/lib/snes_spc/snes_spc/dsp.cpp"
|
|
"../src/lib/snes_spc/snes_spc/SPC_Filter.cpp"
|
|
"../src/lib/snes_spc/demo/wave_writer.c"
|
|
"../src/lib/snes_spc/demo/demo_util.c"
|
|
)
|
|
include_directories(src/lib/snes_spc/snes_spc)
|
|
ADD_LIBRARY(snes_spc STATIC ${SNES_SPC_SOURCES} src/app/spc700/spc700.def)
|
|
|
|
# ImGui -----------------------------------------------------------------------
|
|
include(cmake/imgui.cmake)
|
|
|
|
# Project Files
|
|
add_subdirectory(src)
|
|
add_subdirectory(test) |