-
-
Notifications
You must be signed in to change notification settings - Fork 214
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
28 lines (20 loc) · 993 Bytes
/
CMakeLists.txt
File metadata and controls
28 lines (20 loc) · 993 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
cmake_minimum_required(VERSION 3.10)
project(lygia)
find_package(Python3 COMPONENTS Interpreter REQUIRED)
set(LYGIA_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(LYGIA_HEADER "${LYGIA_GENERATED_DIR}/lygia.h")
set(LYGIA_SOURCE "${LYGIA_GENERATED_DIR}/lygia.cpp")
set(LYGIA_BUNDLE_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/bundle.py")
# Glob all GLSL files to ensure rebuilds when they change
file(GLOB_RECURSE GLSL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.glsl")
# Create the generated directory
file(MAKE_DIRECTORY ${LYGIA_GENERATED_DIR})
add_custom_command(
OUTPUT ${LYGIA_HEADER} ${LYGIA_SOURCE}
COMMAND ${Python3_EXECUTABLE} "${LYGIA_BUNDLE_SCRIPT}" "${CMAKE_CURRENT_SOURCE_DIR}" "${LYGIA_GENERATED_DIR}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS "${LYGIA_BUNDLE_SCRIPT}" ${GLSL_FILES}
COMMENT "Bundling lygia shaders"
)
add_library(lygia STATIC ${LYGIA_SOURCE} ${LYGIA_HEADER})
target_include_directories(lygia PUBLIC "${LYGIA_GENERATED_DIR}")