| 1 | project(crules) |
|---|
| 2 | cmake_minimum_required(VERSION 2.6) |
|---|
| 3 | add_subdirectory(src) |
|---|
| 4 | |
|---|
| 5 | FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h) |
|---|
| 6 | FIND_LIBRARY(READLINE_LIBRARY NAMES readline) |
|---|
| 7 | |
|---|
| 8 | IF (READLINE_INCLUDE_DIR AND READLINE_LIBRARY) |
|---|
| 9 | SET(READLINE_FOUND TRUE) |
|---|
| 10 | ENDIF (READLINE_INCLUDE_DIR AND READLINE_LIBRARY) |
|---|
| 11 | |
|---|
| 12 | IF (READLINE_FOUND) |
|---|
| 13 | IF (NOT Readline_FIND_QUIETLY) |
|---|
| 14 | MESSAGE(STATUS "Found GNU readline: ${READLINE_LIBRARY}") |
|---|
| 15 | ENDIF (NOT Readline_FIND_QUIETLY) |
|---|
| 16 | ELSE (READLINE_FOUND) |
|---|
| 17 | IF (Readline_FIND_REQUIRED) |
|---|
| 18 | MESSAGE(FATAL_ERROR "Could not find GNU readline") |
|---|
| 19 | ENDIF (Readline_FIND_REQUIRED) |
|---|
| 20 | ENDIF (READLINE_FOUND) |
|---|
| 21 | |
|---|
| 22 | set(CMAKE_MODULE_PATH "cmake/") |
|---|
| 23 | find_package(BISON) |
|---|
| 24 | find_package(FLEX) |
|---|
| 25 | |
|---|
| 26 | BISON_TARGET(MyParser src/ss_parser.y src/ss_parser.c) |
|---|
| 27 | FLEX_TARGET(MyScanner src/ss_lexical.l src/ss_lexical.c) |
|---|
| 28 | ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser) |
|---|
| 29 | |
|---|
| 30 | include_directories (include) |
|---|
| 31 | ADD_LIBRARY(parser STATIC |
|---|
| 32 | ${BISON_MyParser_OUTPUTS} |
|---|
| 33 | ${FLEX_MyScanner_OUTPUTS} |
|---|
| 34 | ) |
|---|
| 35 | |
|---|
| 36 | set (Crules_VERSION 0.44) |
|---|
| 37 | # does this system provide the log and exp functions? |
|---|
| 38 | include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) |
|---|
| 39 | |
|---|
| 40 | check_function_exists (strlen HAVE_STRLEN) |
|---|
| 41 | check_function_exists (strdup HAVE_STRDUP) |
|---|
| 42 | |
|---|
| 43 | # configure a header file to pass some of the CMake settings |
|---|
| 44 | # to the source code |
|---|
| 45 | configure_file ( |
|---|
| 46 | "src/config.h.in.cmake" |
|---|
| 47 | "src/config.h.cmake" |
|---|
| 48 | ) |
|---|
| 49 | |
|---|
| 50 | # add the binary tree to the search path for include files |
|---|
| 51 | # so that we will find TutorialConfig.h |
|---|
| 52 | include_directories("${PROJECT_BINARY_DIR}") |
|---|