meta: top-level build system

Mostly sets settings for azur (the engine) and loads backend libraries.
This commit is contained in:
Lephe 2021-07-04 16:58:21 +02:00 committed by Lephenixnoir
parent 3a3f607303
commit bbc431e137
Signed by untrusted user: Lephenixnoir
GPG Key ID: 1BBA026E13FC0495
1 changed files with 67 additions and 0 deletions

67
CMakeLists.txt Normal file
View File

@ -0,0 +1,67 @@
cmake_minimum_required(VERSION 3.19)
project(Facets VERSION 0.1)
# TODO: Set AZUR_DEBUG based on CMake Debug/Release setting
set(AZUR_DEBUG ON)
# When using [fxsdk build-cg], assume gint
if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
set(FACETS_PLATFORM gint)
endif()
# General options
add_compile_options(-Wall -Wextra -O2
-fmacro-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}/=)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# gint
if(FACETS_PLATFORM STREQUAL gint)
set(AZUR_PLATFORM_GENERIC TRUE)
set(AZUR_TOOLKIT_GINT TRUE)
set(AZUR_GRAPHICS_GINT_CG TRUE)
set(AZUR_TERMINAL_NONE TRUE)
find_package(Gint 2.4 REQUIRED)
find_package(LibProf 2.4 REQUIRED)
link_libraries(LibProf::LibProf Gint::Gint)
endif()
# linux
if(FACETS_PLATFORM STREQUAL linux)
set(AZUR_PLATFORM_GENERIC TRUE)
set(AZUR_TOOLKIT_SDL TRUE)
set(AZUR_GRAPHICS_OPENGL_3_3 TRUE)
set(AZUR_TERMINAL_ANSI TRUE)
find_package(PkgConfig REQUIRED)
pkg_check_modules(sdl2 REQUIRED sdl2 IMPORTED_TARGET)
pkg_check_modules(sdl2_image REQUIRED SDL2_image IMPORTED_TARGET)
pkg_check_modules(opengl REQUIRED opengl IMPORTED_TARGET)
link_libraries(PkgConfig::sdl2_image PkgConfig::sdl2 PkgConfig::opengl -lm)
endif()
# emscripten
if(FACETS_PLATFORM STREQUAL emscripten)
set(AZUR_PLATFORM_EMSCRIPTEN TRUE)
set(AZUR_TOOLKIT_SDL TRUE)
set(AZUR_GRAPHICS_OPENGL_ES_2_0 TRUE)
set(AZUR_TERMINAL_PLAIN TRUE)
set(PORTS -sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sSDL2_IMAGE_FORMATS=["png"])
add_compile_options(${PORTS})
add_link_options(${PORTS} -O2)
endif()
#---
add_subdirectory(azur)