@@ -7,9 +7,16 @@ project(cql2cpp
7
7
)
8
8
add_definitions (-DCQL2CPP_VERSION= "${PROJECT_VERSION} " )
9
9
10
+
11
+ find_package (catkin QUIET )
12
+ find_package (catkin_simple QUIET )
13
+ if (catkin_simple_FOUND )
14
+ catkin_package ()
15
+ catkin_simple ()
16
+ endif ()
17
+
10
18
find_package (SQLite3 QUIET )
11
19
find_package (libspatialite QUIET )
12
-
13
20
if (SQLite3_FOUND AND libspatialite_FOUND )
14
21
set (SQLITE_LIBS SQLite::SQLite3 libspatialite::libspatialite )
15
22
else ()
@@ -22,12 +29,6 @@ find_package(glog REQUIRED)
22
29
23
30
include_directories (${CMAKE_BINARY_DIR} )
24
31
include_directories (${CMAKE_SOURCE_DIR} /include )
25
- install (DIRECTORY
26
- ${CMAKE_SOURCE_DIR} /include/cql2cpp
27
- ${CMAKE_SOURCE_DIR} /include/argparse
28
- DESTINATION include
29
- FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
30
- )
31
32
32
33
set (CMAKE_CXX_STANDARD 17 )
33
34
set (CMAKE_CXX_STANDARD_REQUIRED ON )
@@ -44,12 +45,18 @@ add_custom_command(
44
45
45
46
# Parser
46
47
set (BISON_FILE ${CMAKE_SOURCE_DIR} /src/cql2_parser.y )
47
- set (BISON_OUTPUT ${CMAKE_BINARY_DIR} /cql2_parser_base.cc )
48
+ set (BISON_OUTPUT_HH ${CMAKE_BINARY_DIR} /cql2cpp/cql2_parser_base.hh )
49
+ set (BISON_OUTPUT_CC ${CMAKE_BINARY_DIR} /cql2cpp/cql2_parser_base.cc )
48
50
add_custom_command (
49
- OUTPUT ${BISON_OUTPUT }
50
- COMMAND bison -v -d -o ${BISON_OUTPUT } ${BISON_FILE} -W -Wcounterexamples
51
+ OUTPUT ${BISON_OUTPUT_CC }
52
+ COMMAND mkdir -p ${CMAKE_BINARY_DIR} /cql2cpp && bison -v --header=${BISON_OUTPUT_HH} --output=${BISON_OUTPUT_CC } ${BISON_FILE} -W -Wcounterexamples
51
53
DEPENDS ${BISON_FILE}
52
- COMMENT "Generating ${BISON_OUTPUT} from ${BISON_FILE} using bison"
54
+ COMMENT "Generating ${BISON_OUTPUT_CC} from ${BISON_FILE} using bison"
55
+ )
56
+ install (DIRECTORY
57
+ ${CMAKE_BINARY_DIR} /cql2cpp
58
+ DESTINATION include
59
+ FILES_MATCHING PATTERN "*.hh"
53
60
)
54
61
55
62
add_definitions (-DUSE_UNSTABLE_GEOS_CPP_API )
@@ -60,20 +67,26 @@ set(CQL2CPP_SRC
60
67
src/global_yylex.cc
61
68
src/value.cc
62
69
${FLEX_OUTPUT}
63
- ${BISON_OUTPUT }
70
+ ${BISON_OUTPUT_CC }
64
71
)
65
72
66
73
# library
67
- add_library (cql2cpp ${CQL2CPP_SRC} )
74
+ if (catkin_simple_FOUND )
75
+ cs_add_library (cql2cpp ${CQL2CPP_SRC} )
76
+ else ()
77
+ add_library (cql2cpp ${CQL2CPP_SRC} )
78
+ endif ()
68
79
target_compile_options (cql2cpp PRIVATE -Wno-register -Wno-write-strings )
69
80
target_link_libraries (cql2cpp GEOS::geos glog::glog )
70
- install (TARGETS cql2cpp LIBRARY DESTINATION lib/ )
71
81
72
82
# CLI tool
73
- add_executable (cql2 src/main.cc )
83
+ if (catkin_simple_FOUND )
84
+ cs_add_executable (cql2 src/main.cc )
85
+ else ()
86
+ add_executable (cql2 src/main.cc )
87
+ endif ()
74
88
target_compile_options (cql2 PRIVATE -Wno-register -Wno-write-strings )
75
89
target_link_libraries (cql2 cql2cpp GEOS::geos glog::glog )
76
- install (TARGETS cql2 RUNTIME DESTINATION lib/${PROJECT_NAME}/ )
77
90
78
91
# Test
79
92
enable_testing ()
@@ -90,3 +103,18 @@ add_test(NAME test_bbox_reader COMMAND test_bbox_reader WORKING_DIRECTORY ${TEST
90
103
add_executable (test_sql ${TEST_DIR} /test_sql.cc )
91
104
target_link_libraries (test_sql cql2cpp GTest::GTest GTest::Main glog::glog ${SQLITE_LIBS} )
92
105
add_test (NAME test_sql COMMAND test_sql WORKING_DIRECTORY ${TEST_DIR} )
106
+
107
+
108
+ if (catkin_simple_FOUND )
109
+ cs_install ()
110
+ cs_export ()
111
+ else ()
112
+ install (DIRECTORY
113
+ ${CMAKE_SOURCE_DIR} /include/cql2cpp
114
+ ${CMAKE_SOURCE_DIR} /include/argparse
115
+ DESTINATION include
116
+ FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
117
+ )
118
+ install (TARGETS cql2cpp LIBRARY DESTINATION lib/ )
119
+ install (TARGETS cql2 RUNTIME DESTINATION lib/${PROJECT_NAME}/ )
120
+ endif ()
0 commit comments