X-Git-Url: https://git.librecmc.org/?p=oweals%2Fjsonpath.git;a=blobdiff_plain;f=CMakeLists.txt;h=8db786e949225d63cf2cd70707672baff5ef13a8;hp=ef1a089ab796a7aae85d4dc7eb5bc9c5f9dbd2cb;hb=691f1065ad33b5d53d342e8705a37563d9ebb8b5;hpb=960dafd0b61eb14032d13c1562566618be55133f diff --git a/CMakeLists.txt b/CMakeLists.txt index ef1a089..8db786e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) PROJECT(jsonpath C) -ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -Wmissing-declarations -ffunction-sections) +ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-error=unused-variable -ffunction-sections -D_GNU_SOURCE) SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,--gc-sections") @@ -23,29 +23,23 @@ IF(JSONC_FOUND) INCLUDE_DIRECTORIES(${JSONC_INCLUDE_DIRS}) ENDIF() -FIND_PACKAGE(BISON REQUIRED) -IF(BISON_FOUND) - ADD_CUSTOM_COMMAND( - OUTPUT parser.c - DEPENDS parser.y - COMMAND ${BISON_EXECUTABLE} parser.y - COMMENT "Generating parser.c" - ) -ENDIF() - -FIND_PACKAGE(FLEX REQUIRED) -IF(FLEX_FOUND) - ADD_CUSTOM_COMMAND( - OUTPUT lexer.c - DEPENDS lexer.l - COMMAND ${FLEX_EXECUTABLE} lexer.l - COMMENT "Generating lexer.c" - ) -ENDIF() - -SET_PROPERTY(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "lexer.h;parser.h") -SET_SOURCE_FILES_PROPERTIES("lexer.c;parser.c" PROPERTIES GENERATED TRUE) -ADD_EXECUTABLE(jsonpath main.c lexer.c parser.c matcher.c) +ADD_CUSTOM_COMMAND( + OUTPUT contrib/lemon + DEPENDS contrib/lemon.c contrib/lempar.c + COMMAND gcc -o contrib/lemon contrib/lemon.c + COMMENT "Generating lemon parser generator" +) + +ADD_CUSTOM_COMMAND( + OUTPUT parser.c + DEPENDS parser.y contrib/lemon + COMMAND ./contrib/lemon parser.y + COMMENT "Generating parser.c" +) + +SET_PROPERTY(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "lemon;parser.h;parser.out") +SET_SOURCE_FILES_PROPERTIES("parser.c" PROPERTIES GENERATED TRUE) +ADD_EXECUTABLE(jsonpath main.c ast.c lexer.c parser.c matcher.c) TARGET_LINK_LIBRARIES(jsonpath ubox ${json}) INSTALL(TARGETS jsonpath RUNTIME DESTINATION bin)