#Definition of CMake version to use CMAKE_MINIMUM_REQUIRED(VERSION 3.11) set(CMAKE_CXX_STANDARD 20) set(LIB_NAME "ray") project("${LIB_NAME}") include_directories(${LIB_NAME} ./sources) if (CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Wno-unused-parameter -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") set(HEADERS sources/Color.hpp sources/Font.hpp sources/Matrix.hpp sources/Mesh.hpp sources/TraceLog.hpp sources/Window.hpp sources/Audio/IAudio.hpp sources/Audio/Music.hpp sources/Audio/Sound.hpp sources/Camera/Camera2D.hpp sources/Camera/Camera3D.hpp sources/Camera/CameraMode.hpp sources/Camera/CameraProjection.hpp sources/Camera/ICamera.hpp sources/Controllers/Gamepad.hpp sources/Controllers/Keyboard.hpp sources/Controllers/Mouse.hpp sources/Drawables/ADrawable2D.hpp sources/Drawables/ADrawable3D.hpp sources/Drawables/IDrawable.hpp sources/Drawables/Image.hpp sources/Drawables/Texture.hpp sources/Drawables/2D/Circle.hpp sources/Drawables/2D/Line.hpp sources/Drawables/2D/Point.hpp sources/Drawables/2D/Rectangle.hpp sources/Drawables/2D/Text.hpp sources/Drawables/2D/Triangle.hpp sources/Drawables/3D/Circle.hpp sources/Drawables/3D/Cube.hpp sources/Drawables/3D/Cylinder.hpp sources/Drawables/3D/Grid.hpp sources/Drawables/3D/Line.hpp sources/Drawables/3D/Plane.hpp sources/Drawables/3D/Point.hpp sources/Drawables/3D/Ray.hpp sources/Drawables/3D/Sphere.hpp sources/Drawables/3D/Triangle.hpp sources/Exceptions/RayError.hpp sources/Model/Model.hpp sources/Model/ModelAnimation.hpp sources/Model/ModelAnimations.hpp sources/Vector/Vector2.hpp sources/Vector/Vector3.hpp sources/Utils/Cache.hpp sources/Meshes/AMesh.hpp sources/Meshes/MeshSphere.hpp sources/Shaders/Shaders.hpp ) set(SRC sources/Color.cpp sources/Font.cpp sources/TraceLog.cpp sources/Window.cpp sources/Audio/Music.cpp sources/Audio/Sound.cpp sources/Camera/Camera2D.cpp sources/Camera/Camera3D.cpp sources/Controllers/Gamepad.cpp sources/Controllers/Keyboard.cpp sources/Controllers/Mouse.cpp sources/Drawables/2D/Circle.cpp sources/Drawables/2D/Line.cpp sources/Drawables/2D/Point.cpp sources/Drawables/2D/Rectangle.cpp sources/Drawables/2D/Text.cpp sources/Drawables/2D/Triangle.cpp sources/Drawables/3D/Circle.cpp sources/Drawables/3D/Cube.cpp sources/Drawables/3D/Cylinder.cpp sources/Drawables/3D/Grid.cpp sources/Drawables/3D/Line.cpp sources/Drawables/3D/Plane.cpp sources/Drawables/3D/Point.cpp sources/Drawables/3D/Ray.cpp sources/Drawables/3D/Sphere.cpp sources/Drawables/3D/Triangle.cpp sources/Drawables/ADrawable2D.cpp sources/Drawables/ADrawable3D.cpp sources/Drawables/Image.cpp sources/Drawables/Texture.cpp sources/Exceptions/RayError.cpp sources/Model/Model.cpp sources/Model/ModelAnimation.cpp sources/Model/ModelAnimations.cpp sources/Vector/Vector2.cpp sources/Vector/Vector3.cpp sources/Shaders/Shaders.cpp sources/Meshes/MeshSphere.cpp sources/Meshes/AMesh.cpp ) find_package(raylib QUIET) if (NOT raylib_FOUND) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../raylib) find_package(raylib REQUIRED) endif() add_library(${LIB_NAME} STATIC ${SRC} ${HEADERS}) target_compile_definitions(${LIB_NAME} INTERFACE INTERNAL=private PRIVATE INTERNAL=public) target_link_libraries(${LIB_NAME} raylib)