diff options
author | salaaad2 <arthurdurant263@gmail.com> | 2022-06-13 22:15:48 +0200 |
---|---|---|
committer | salaaad2 <arthurdurant263@gmail.com> | 2022-06-13 22:15:48 +0200 |
commit | 95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3 (patch) | |
tree | 352480349a46d19ab5b8078ac4ccb79d27166f04 /raylib/src/CMakeLists.txt | |
parent | mouse is captured again, pretty gud (diff) | |
download | yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.gz yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.bz2 yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.xz yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.zst yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.zip |
add raylib to the build chain with -O3 and -march=native
Diffstat (limited to 'raylib/src/CMakeLists.txt')
-rw-r--r-- | raylib/src/CMakeLists.txt | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/raylib/src/CMakeLists.txt b/raylib/src/CMakeLists.txt new file mode 100644 index 0000000..c96f4f5 --- /dev/null +++ b/raylib/src/CMakeLists.txt @@ -0,0 +1,121 @@ +# Setup the project and settings +project(raylib C) +set(PROJECT_VERSION 4.0.0) +set(API_VERSION 400) + +include(GNUInstallDirs) +include(JoinPaths) + +# Sets build type if not set by now +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + if(RAYLIB_IS_MAIN) + set(default_build_type Debug) + else() + message(WARNING "Default build type is not set (CMAKE_BUILD_TYPE)") + endif() + + message(STATUS "Setting build type to '${default_build_type}' as none was specified.") + + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +# Used as public API to be included into other projects +set(raylib_public_headers + raylib.h + rlgl.h + raymath.h + raudio.h + ) + +# Sources to be compiled +set(raylib_sources + rcore.c + rmodels.c + rshapes.c + rtext.c + rtextures.c + utils.c + ) + +# <root>/cmake/GlfwImport.cmake handles the details around the inclusion of glfw +include(GlfwImport) + +# Sets additional platform options and link libraries for each platform +# also selects the proper graphics API and version for that platform +# Produces a variable LIBS_PRIVATE that will be used later +include(LibraryConfigurations) + +if (USE_AUDIO) + MESSAGE(STATUS "Audio Backend: miniaudio") + list(APPEND raylib_sources raudio.c) +else () + MESSAGE(STATUS "Audio Backend: None (-DUSE_AUDIO=OFF)") +endif () + + +add_library(raylib ${raylib_sources} ${raylib_public_headers}) + +if (NOT BUILD_SHARED_LIBS) + MESSAGE(STATUS "Building raylib static library") + add_library(raylib_static ALIAS raylib) +else() + MESSAGE(STATUS "Building raylib shared library") + if (MSVC) + target_compile_definitions(raylib + PRIVATE $<BUILD_INTERFACE:BUILD_LIBTYPE_SHARED> + INTERFACE $<INSTALL_INTERFACE:USE_LIBTYPE_SHARED> + ) + endif () +endif() + +set_target_properties(raylib PROPERTIES + PUBLIC_HEADER "${raylib_public_headers}" + VERSION ${PROJECT_VERSION} + SOVERSION ${API_VERSION} + ) + +if (WITH_PIC OR BUILD_SHARED_LIBS) + set_property(TARGET raylib PROPERTY POSITION_INDEPENDENT_CODE ON) +endif () + +target_link_libraries(raylib "${LIBS_PRIVATE}") + +# Sets some compile time definitions for the pre-processor +# If CUSTOMIZE_BUILD option is on you will not use config.h by default +# and you will be able to select more build options +include(CompileDefinitions) + +# Registering include directories +target_include_directories(raylib + PUBLIC + $<INSTALL_INTERFACE:include> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${OPENGL_INCLUDE_DIR} + ${OPENAL_INCLUDE_DIR} + ) + +# Copy the header files to the build directory for convenience +file(COPY ${raylib_public_headers} DESTINATION "include") + +# Includes information on how the library will be installed on the system +# when cmake --install is run +include(InstallConfigurations) + +# Print the flags for the user +if (DEFINED CMAKE_BUILD_TYPE) + message(STATUS "Generated build type: ${CMAKE_BUILD_TYPE}") +else () + message(STATUS "Generated config types: ${CMAKE_CONFIGURATION_TYPES}") +endif () + +message(STATUS "Compiling with the flags:") +message(STATUS " PLATFORM=" ${PLATFORM_CPP}) +message(STATUS " GRAPHICS=" ${GRAPHICS}) + +# Options if you want to create an installer using CPack +include(PackConfigurations) + +enable_testing() |