cmake_minimum_required(VERSION 3.25) project(JGL VERSION 1.0 LANGUAGES CXX ) if (PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) message(FATAL_ERROR "In-source builds are not allowed") endif() set(CMAKE_CXX_STANDARD 20) if (WIN32) set(CMAKE_CXX_FLAGS "-municode") endif(WIN32) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # Enable Package Managers include(cmake/CPM.cmake) CPMAddPackage( NAME J3ML URL https://git.redacted.cc/josh/j3ml/archive/Prerelease-18.zip ) CPMAddPackage( NAME ReWindow URL https://git.redacted.cc/Redacted/ReWindow/archive/vA0.2.17.zip ) CPMAddPackage( NAME GLAD URL https://git.redacted.cc/Redacted/glad/archive/v2.1.zip ) file(GLOB_RECURSE HEADERS "include/*.h" "include/*.hpp") file(GLOB_RECURSE SOURCES "src/*.c" "src/*.cpp" ) file(GLOB_RECURSE ASSETS "content/*") add_library(JGL SHARED ${SOURCES} include/JGL/JGL.h src/JGL/JGL.cpp include/LearnOpenGL/Shader.h include/LearnOpenGL/Texture2D.h include/JGL/Color3.h include/JGL/Colors.h include/JGL/Color4.h ) set_target_properties(JGL PROPERTIES LINKER_LANGUAGE CXX) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) find_package(Freetype REQUIRED) add_executable(JGL_Demo main.cpp) set_target_properties(JGL_Demo PROPERTIES LINK_FLAGS "-Wl,-rpath,./lib") include_directories(${PROJECT_SOURCE_DIR}/include) include_directories(${OPENGL_INCLUDE_DIRS}) include_directories(${GLUT_INCLUDE_DIRS}) include_directories(${J3ML_SOURCE_DIR}/include) include_directories(${ReWindow_SOURCE_DIR}/include) include_directories(${glad_SOURCE_DIR}/include) target_link_libraries(JGL PRIVATE ${FREETYPE_LIBRARIES}) target_include_directories(JGL PRIVATE ${FREETYPE_INCLUDE_DIRS}) target_link_libraries(JGL_Demo PUBLIC JGL ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} J3ML ReWindowLibrary GLEW glad)