From bbc431e13795acea1b87ab7bcc6e04ed3f4b6456 Mon Sep 17 00:00:00 2001 From: Lephe Date: Sun, 4 Jul 2021 16:58:21 +0200 Subject: [PATCH] meta: top-level build system Mostly sets settings for azur (the engine) and loads backend libraries. --- CMakeLists.txt | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..80880b9 --- /dev/null +++ b/CMakeLists.txt @@ -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)