decaf-emu/tools/latte-assembler/CMakeLists.txt
2022-01-22 13:43:32 +00:00

40 lines
1.4 KiB
CMake

project(latte-assembler)
include_directories(".")
include_directories(${PROJECT_BINARY_DIR})
file(GLOB_RECURSE SOURCE_FILES src/*.cpp)
file(GLOB_RECURSE HEADER_FILES src/*.h)
# Generates a grammar.h with the contents of grammar.txt in a C++ string
set(GRAMMAR_FILE ${PROJECT_SOURCE_DIR}/resources/grammar.txt)
set(GRAMMAR_CMAKE ${PROJECT_BINARY_DIR}/generate_grammar.cmake)
set(GRAMMAR_HEADER ${PROJECT_BINARY_DIR}/grammar.h)
file(WRITE ${GRAMMAR_CMAKE} "FILE(WRITE grammar.h \"const char *LatteGrammar = R\\\"(\\n\")\n")
file(APPEND ${GRAMMAR_CMAKE} "FILE(READ ")
file(APPEND ${GRAMMAR_CMAKE} ${GRAMMAR_FILE})
file(APPEND ${GRAMMAR_CMAKE} " CONTENTS)\n")
file(APPEND ${GRAMMAR_CMAKE} "FILE(APPEND grammar.h \${CONTENTS})\n")
file(APPEND ${GRAMMAR_CMAKE} "FILE(APPEND grammar.h \")\\\";\\n\")\n")
add_custom_command(COMMAND ${CMAKE_COMMAND} -P ${GRAMMAR_CMAKE}
DEPENDS ${GRAMMAR_FILE}
OUTPUT ${GRAMMAR_HEADER}
COMMENT "Generating grammar.h")
# Build latte-assembler
add_executable(latte-assembler ${SOURCE_FILES} ${HEADER_FILES} ${GRAMMAR_HEADER})
target_link_libraries(latte-assembler
common
libgfd
excmd
peglib
SPIRV)
set_target_properties(latte-assembler PROPERTIES FOLDER tools)
GroupSources("Source Files" src)
GroupSources("Resource Files" resources)
install(TARGETS latte-assembler RUNTIME DESTINATION "${DECAF_INSTALL_BINDIR}")