cmake_minimum_required(VERSION 3.25) set(ARCHEUS_STD_VERSION 0.0.0) project(archeus_std LANGUAGES C VERSION ${ARCHEUS_STD_VERSION} DESCRIPTION "libarcheus_std standard archeus c library") include(GNUInstallDirs) function(print var) message("${var} = ${${var}}") endfunction() #TODO: Might want to remove this if(NOT CMAKE_BUILD_TYPE) message("[Archeus C STD] Build Type not set, defaulting to Debug") set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Default to Debug" FORCE) endif() # ~ OPTIONS ~ # option(ARCHEUS_STD_DEFAULT_CONFIG "Build with default config keys" ON) set(ARCHEUS_STD_WINDOW_BACKEND "NONE" CACHE STRING "Window Backend to build with") set_property(CACHE ARCHEUS_STD_WINDOW_BACKEND PROPERTY STRINGS NONE SDL2 GLFW) set(ARCHEUS_STD_INPUT_BACKEND "NONE" CACHE STRING "Input Backend to build with, most likely should match Window API") set_property(CACHE ARCHEUS_STD_INPUT_BACKEND PROPERTY STRINGS NONE SDL2 GLFW) set(ARCHEUS_STD_GRAPHICS_BACKEND "NONE" CACHE STRING "Graphics Backend to build with") set_property(CACHE ARCHEUS_STD_GRAPHICS_BACKEND PROPERTY STRINGS NONE SDL2 OPENGL) # ~ INIT VARIABLES ~ # set(ARCHEUS_STD_FLAGS "") set(ARCHEUS_STD_LIBRARIES "") <<<<<<< HEAD # ~ ARCHEUS_SOURCES ~ # ======= if(ARCHEUS_STD_DEBUG) string(APPEND ARCHEUS_STD_FLAGS "-Wall -Werror -g -ggdb -DARC_DEBUG ") endif() if(ARCHEUS_STD_DEFAULT_CONFIG) string(APPEND ARCHEUS_STD_FLAGS "-DARC_DEFAULT_CONFIG ") endif() if(ARCHEUS_STD_SDL) if(NOT PNG AND WIN32 AND NOT MSVC) set(PNG_LIBRARY "C:/Program Files(x86)/libpng") set(PNG_PNG_INCLUDE_DIR "C:/Program Files(x86)/libpng/include") endif() find_package(SDL2 REQUIRED) find_package(SDL2_image REQUIRED) find_package(SDL2_ttf REQUIRED) find_package(SDL2_mixer REQUIRED) string(APPEND ARCHEUS_STD_FLAGS "-DARC_SDL ") endif() if(ARCHEUS_STD_GLFW) string(APPEND ARCHEUS_STD_FLAGS "-DARC_GLFW ") endif() if(ARCHEUS_STD_GLEW) string(APPEND ARCHEUS_STD_FLAGS "-DARC_GLEW ") endif() if(ARCHEUS_STD_OPENGL) string(APPEND ARCHEUS_STD_FLAGS "-DARC_OPENGL") endif() set(CMAKE_C_FLAGS ${ARCHEUS_STD_FLAGS}) >>>>>>> 5750185bd8a38ce2a450f47e3bd8d5315b455561 set(ARCHEUS_STD_SOURCES src/std/config.c src/std/errno.c src/std/handler.c src/std/hashtable.c src/std/io.c src/std/string.c src/std/vector.c src/std/defaults/config.c src/math/circle.c src/math/config.c src/math/obround.c src/math/point.c src/math/rectangle.c src/math/vector2.c src/files/config.c src/engine/engine.c src/engine/state.c ) <<<<<<< HEAD if(CMAKE_BUILD_TYPE STREQUAL "Debug") string(APPEND ARCHEUS_STD_FLAGS "-Wall -Werror -g -ggdb -DARC_DEBUG ") endif() # TODO: replace this with a better system if(ARCHEUS_STD_DEFAULT_CONFIG) string(APPEND ARCHEUS_STD_FLAGS "-DARC_DEFAULT_CONFIG ") endif() # ~ NONE ~ # include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/archeus_none.cmake) none_check_and_init_needed(ARCHEUS_STD_FLAGS ARCHEUS_STD_SOURCES ${ARCHEUS_STD_WINDOW_BACKEND} ${ARCHEUS_STD_INPUT_BACKEND} ${ARCHEUS_STD_GRAPHICS_BACKEND}) # ~ SDL2 ~ # include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/archeus_sdl2.cmake) sdl2_check_and_init_needed(ARCHEUS_STD_FLAGS ARCHEUS_STD_SOURCES ${ARCHEUS_STD_WINDOW_BACKEND} ${ARCHEUS_STD_INPUT_BACKEND} ${ARCHEUS_STD_GRAPHICS_BACKEND}) # ~ OPENGL ~ # if(ARCHEUS_STD_GRAPHICS_BACKEND STREQUAL OPENGL) string(APPEND ARCHEUS_STD_FLAGS "-DARC_OPENGL ") endif() if(ARCHEUS_STD_GLFW) string(APPEND ARCHEUS_STD_FLAGS "-DARC_GLFW ") endif() if(ARCHEUS_STD_GLEW) string(APPEND ARCHEUS_STD_FLAGS "-DARC_GLEW ") endif() set(CMAKE_C_FLAGS ${ARCHEUS_STD_FLAGS}) ======= set(ARCHEUS_STD_SDL_SOURCES src/audio/sdl/audio.c src/audio/sdl/config.c src/input/sdl/keyboard.c src/input/sdl/mouse.c src/graphics/sdl/circle.c src/graphics/sdl/config.c src/graphics/sdl/line.c src/graphics/sdl/obround.c src/graphics/sdl/rectangle.c src/graphics/sdl/renderer.c src/graphics/sdl/sprite.c src/graphics/sdl/spritesheet.c src/graphics/sdl/text.c src/graphics/sdl/view.c src/graphics/sdl/window.c ) >>>>>>> 5750185bd8a38ce2a450f47e3bd8d5315b455561 set(ARCHEUS_STD_OPENGL_SOURCES src/graphics/opengl/config.c src/graphics/opengl/line.c src/graphics/opengl/rectangle.c src/graphics/opengl/renderer.c src/graphics/opengl/sprite.c src/graphics/opengl/spritesheet.c src/graphics/opengl/window.c ) set(ARCHEUS_STD_GLFW_SOURCES src/input/glfw/keyboard.c src/input/glfw/mouse.c ) if(ARCHEUS_STD_OPENGL) list(APPEND ARCHEUS_STD_SOURCES ${ARCHEUS_STD_OPENGL_SOURCES}) endif() if(ARCHEUS_STD_GLFW) list(APPEND ARCHEUS_STD_SOURCES ${ARCHEUS_STD_GLFW_SOURCES}) endif() if(WIN32 AND NOT MSVC) add_library(archeus_std STATIC ${ARCHEUS_STD_SOURCES}) else() add_library(archeus_std SHARED ${ARCHEUS_STD_SOURCES}) endif() target_include_directories(archeus_std PUBLIC $ ) <<<<<<< HEAD target_link_libraries(archeus_std PUBLIC m ) ======= target_link_libraries(archeus_std PUBLIC ${SDL2_LIBRARIES} SDL2_image::SDL2_image SDL2_ttf::SDL2_ttf SDL2_mixer::SDL2_mixer) endif() if(ARCHEUS_STD_OPENGL) target_include_directories(archeus_std PRIVATE PUBLIC $ ) endif() >>>>>>> 5750185bd8a38ce2a450f47e3bd8d5315b455561 install(TARGETS archeus_std EXPORT archeus_std_Exports LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install(EXPORT archeus_std_Exports DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/archeus_std-${PROJECT_VERSION} ) install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN *.h ) include(CMakePackageConfigHelpers) set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) set(LIBRARY_INSTALL_BIN ${CMAKE_INSTALL_LIBDIR}) configure_package_config_file( "${PROJECT_SOURCE_DIR}/cmake/archeus_std-config.cmake.in" "${PROJECT_BINARY_DIR}/archeus_std-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/archeus_std-${PROJECT_VERSION} PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_BIN ) write_basic_package_version_file( "archeus_std-ConfigVersion.cmake" VERSION {PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/archeus_std-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/archeus_std-ConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/archeus_std-${PROJECT_VERSION} )