# # Roo/E, the Kangaroo Punch Portable GUI Toolkit # Copyright (C) 2022 Scott Duensing # # http://kangaroopunch.com # # # This file is part of Roo/E. # # Roo/E is free software: you can redistribute it and/or modify it under the # terms of the GNU Affero General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # Roo/E is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU Affero General Public License # along with Roo/E. If not, see . # cmake_minimum_required(VERSION 3.12) project(roo_e LANGUAGES C) set(THIRDPARTY_HEADERS memwatch/memwatch.h stb_ds.h stb_image.h ) list(TRANSFORM THIRDPARTY_HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/thirdparty/") set(THIRDPARTY_SOURCE memwatch/memwatch.c ) list(TRANSFORM THIRDPARTY_SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/thirdparty/") set(PLATFORM_HEADERS platform.h ) list(TRANSFORM PLATFORM_HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/platform/") set(PLATFORM_SOURCE djgpp.c sdl2.c ) list(TRANSFORM PLATFORM_SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/platform/") set(WIDGET_HEADERS button.h checkbox.h frame.h hscroll.h label.h picture.h radio.h scroll.h vscroll.h ) list(TRANSFORM WIDGET_HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/gui/widgets/") set(WIDGET_SOURCE button.c checkbox.c frame.c hscroll.c label.c picture.c radio.c scroll.c vscroll.c ) list(TRANSFORM WIDGET_SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/gui/widgets/") set(GUI_HEADERS font.h gui-all.h gui.h image.h surface.h wmwindow.h ) list(TRANSFORM GUI_HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/gui/") set(GUI_SOURCE font.c gui.c image.c surface.c wmwindow.c ) list(TRANSFORM GUI_SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/gui/") set(ROO_E_HEADERS array.h log.h macros.h memory.h os.h stddclmr.h util.h ) list(TRANSFORM ROO_E_HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/") set(ROO_E_SOURCE array.c log.c memory.c util.c ) list(TRANSFORM ROO_E_SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/") set(TEST_HEADERS ) list(TRANSFORM TEST_HEADERS PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/test/src/") set(TEST_SOURCE main.c ) list(TRANSFORM TEST_SOURCE PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/test/src/") add_executable(${CMAKE_PROJECT_NAME} ${THIRDPARTY_HEADERS} ${THIRDPARTY_SOURCE} ${PLATFORM_HEADERS} ${PLATFORM_SOURCE} ${WIDGET_HEADERS} ${WIDGET_SOURCE} ${GUI_HEADERS} ${GUI_SOURCE} ${ROO_E_HEADERS} ${ROO_E_SOURCE} ${TEST_HEADERS} ${TEST_SOURCE} ) add_compile_definitions( _REENTRANT BACKEND_SDL2 INCLUDE_FONT_CONVERTER="../roo_e/font/in" INCLUDE_IMAGE_FINDER="../roo_e/roo_e/assets" ) target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src ${CMAKE_CURRENT_SOURCE_DIR}/roo_e/src/thirdparty /usr/include/SDL2 ) target_link_libraries(${CMAKE_PROJECT_NAME} -lSDL2 -lm )