-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeIncludes.txt
32 lines (23 loc) · 1.12 KB
/
CMakeIncludes.txt
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
29
30
31
32
if(${CMAKE_C_COMPILER_ID} MATCHES "Clang")
set(CMAKE_C_FLAGS "-Wall -g -std=c99 -pedantic -DDEBUG -Wno-gnu-statement-expression")
set(CMAKE_SHARED_LINKER_FLAGS " -undefined dynamic_lookup -flat_namespace")
else()
set(CMAKE_C_FLAGS "-Wall -gdwarf-2 -O3 -std=gnu99 -pedantic -DDEBUG -lm -D_GNU_SOURCE")
endif()
include_directories(${PROJECT_SOURCE_DIR}/src/include)
# turn on shared libraries
set(BUILD_SHARED_LIBS 1)
file(GLOB_RECURSE INSC_LIB_TARGETS FOLLOW_SYMLINKS ${CMAKE_BINARY_DIR}/src/lib/*.scm)
# Define an insomniac compile command.
macro(INSC_TARGET Name Input Output)
set(INSC_TARGET_outputs "${CMAKE_CURRENT_BINARY_DIR}/${Output}")
set(INSC_TARGET_usage "INSC_TARGET(<Name> <Input> <Output>)")
add_custom_command(OUTPUT ${Output}
COMMAND ${CMAKE_BINARY_DIR}/src/insc-bootstrap ${Input} -o ${INSC_TARGET_outputs}
VERBATIM
DEPENDS ${Input} insc-bootstrap ${INSC_LIB_TARGETS}
COMMENT "[INSC] Compiling Insomniac Scheme code to ${INSC_TARGET_outputs}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
set(INSC_${Name}_OUTPUTS "${INSC_TARGET_outputs}")
endmacro()
# Define a