167 lines
3.4 KiB
CMake
167 lines
3.4 KiB
CMake
#
|
|
# 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 <https://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
|
|
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
|
|
)
|