aboutsummaryrefslogtreecommitdiffstats
path: root/raylib/src/CMakeLists.txt
diff options
context:
space:
mode:
authorsalaaad2 <arthurdurant263@gmail.com>2022-06-13 22:15:48 +0200
committersalaaad2 <arthurdurant263@gmail.com>2022-06-13 22:15:48 +0200
commit95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3 (patch)
tree352480349a46d19ab5b8078ac4ccb79d27166f04 /raylib/src/CMakeLists.txt
parentmouse is captured again, pretty gud (diff)
downloadyabs-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.txt121
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()