From 8c007c3f4440eabac9ba76e5699c57eaa26907cf Mon Sep 17 00:00:00 2001 From: Crayon2000 Date: Sat, 12 Oct 2024 17:15:18 -0400 Subject: [PATCH] Add support for cmake --- CMakeLists.txt | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ce80a83 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,69 @@ +cmake_minimum_required(VERSION 3.18) +project(grrlib) + +include(GNUInstallDirs) + +find_package(PkgConfig REQUIRED) + +pkg_check_modules(PNG REQUIRED libpng) +pkg_check_modules(FREETYPE REQUIRED freetype2) +pkg_check_modules(JPEG REQUIRED libjpeg) + +add_library(pngu STATIC) + +target_sources(pngu + PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/GRRLIB/lib/pngu/pngu.c" +) + +target_include_directories(pngu + PUBLIC + "$" + PRIVATE + ${PNG_INCLUDE_DIRS} +) + +target_link_libraries(pngu PUBLIC + ${PNG_LIBRARIES} +) + +add_library(grrlib STATIC) + +target_compile_options(grrlib + PRIVATE + -Wall + -Wshadow + -Wunused +) + +file(GLOB_RECURSE GRRLIB_SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/GRRLIB/GRRLIB*.c") +target_sources(grrlib + PRIVATE + "${GRRLIB_SRC_FILES}" +) + +target_include_directories(grrlib + PUBLIC + "$" + PRIVATE + "$" + ${FREETYPE_INCLUDE_DIRS} + ${JPEG_INCLUDE_DIRS} +) + +target_link_libraries(grrlib PUBLIC + pngu +) + +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/GRRLIB/GRRLIB/" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +install(TARGETS pngu + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(TARGETS grrlib + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +)