ref: ea43ca89b5684ad871af303c7111777b53421ebd
parent: cd9285f1362787e175bb2b1761a323cdf1088456
 parent: a8f25bded4af34e5136558f17c0a891331455d35
	author: Gek <6974902+gek169@users.noreply.github.com>
	date: Mon May 24 16:29:35 EDT 2021
	
Merge pull request #2 from RobLoach/patch-1 Add CMake support
--- /dev/null
+++ b/CMakeLists.txt
@@ -1,0 +1,65 @@
+cmake_minimum_required(VERSION 3.14)
+project(tinygl
+ DESCRIPTION "tinygl: The ultimate portable graphics library"
+ HOMEPAGE_URL "https://github.com/C-Chads/tinygl"
+ LANGUAGES C
+)
+
+# Options
+option(TINYGL_BUILD_EXAMPLES "Build Examples" OFF)
+option(TINYGL_BUILD_STATIC "Build Static Library" ON)
+option(TINYGL_BUILD_SHARED "Build Shared Library" ON)
+
+# Variables
+set(TINYGL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)+set(TINYGL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)+file(GLOB TINYGL_SOURCES ${TINYGL_SOURCE_DIR}/*.c)+
+# Libraries
+if(TINYGL_BUILD_STATIC)
+    add_library(tinygl-static STATIC ${TINYGL_SOURCES})+    target_include_directories(tinygl-static PUBLIC ${TINYGL_INCLUDE_DIR})+endif()
+if(TINYGL_BUILD_SHARED)
+    add_library(tinygl SHARED ${TINYGL_SOURCES})+    target_include_directories(tinygl PUBLIC ${TINYGL_INCLUDE_DIR})+endif()
+
+# Examples
+if(TINYGL_BUILD_EXAMPLES AND TINYGL_BUILD_STATIC)
+    set(TINYGL_DEMOS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Raw_Demos)+    file(GLOB TINYGL_DEMOS ${TINYGL_DEMOS_DIR}/*.c)+    foreach(DEMO ${TINYGL_DEMOS})+        get_filename_component(DEMO_NAME ${DEMO} NAME_WE)+        add_executable(${DEMO_NAME} ${DEMO})+        target_link_libraries(${DEMO_NAME} tinygl-static m)+ endforeach()
+    configure_file(${TINYGL_DEMOS_DIR}/asciifractal.sh asciifractal.sh)+    configure_file(${TINYGL_DEMOS_DIR}/char.txt char.txt)+
+ find_package(SDL QUIET)
+ if(SDL_FOUND)
+        set(TINYGL_SDL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SDL_Examples)+        file(GLOB TINYGL_SDL_DEMOS ${TINYGL_SDL_DIR}/*.c)+        foreach(DEMO ${TINYGL_SDL_DEMOS})+            get_filename_component(DEMO_NAME ${DEMO} NAME_WE)+            set(DEMO_NAME "sdl_${DEMO_NAME}")+            add_executable(${DEMO_NAME} ${DEMO})+            target_link_libraries(${DEMO_NAME} tinygl-static m ${SDL_LIBRARY})+            target_include_directories(${DEMO_NAME} PUBLIC ${SDL_INCLUDE_DIR})+ endforeach()
+
+ file(GLOB TINYGL_RESOURCES
+            ${TINYGL_SDL_DIR}/*.png+            ${TINYGL_SDL_DIR}/*.obj+            ${TINYGL_SDL_DIR}/*.mp3+            ${TINYGL_SDL_DIR}/*.jpg+ )
+        foreach(FILE ${TINYGL_RESOURCES})+            get_filename_component(FILE_NAME ${FILE} NAME)+            configure_file(${FILE} ${FILE_NAME} COPYONLY)+ endforeach()
+ else()
+ message(STATUS "tinygl: SDL not found")
+ endif()
+endif()
--
⑨