File: CMakeLists.txt

package info (click to toggle)
groonga 15.2.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 171,500 kB
  • sloc: ansic: 772,536; cpp: 51,530; ruby: 40,538; javascript: 10,250; yacc: 7,045; sh: 5,622; python: 2,821; makefile: 1,677
file content (188 lines) | stat: -rw-r--r-- 7,991 bytes parent folder | download | duplicates (2)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# Copyright (C) 2015-2018  Brazil
# Copyright (C) 2024  Sutou Kouhei <kou@clear-code.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

set(GRN_FUNCTIONS_PLUGIN_DIR "${GRN_RELATIVE_PLUGINS_DIR}/functions")

read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/vector_sources.am VECTOR_SOURCES)
set_source_files_properties(${VECTOR_SOURCES}
                            PROPERTIES COMPILE_FLAGS "${GRN_C_COMPILE_FLAGS}")
if(GRN_EMBED)
  add_library(vector_functions STATIC ${VECTOR_SOURCES})
  set_target_properties(vector_functions PROPERTIES POSITION_INDEPENDENT_CODE
                                                    ON)
else()
  add_library(vector_functions MODULE ${VECTOR_SOURCES})
  set_target_properties(vector_functions PROPERTIES PREFIX "" OUTPUT_NAME
                                                              "vector")
  install(TARGETS vector_functions DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
  if(MSVC AND CMAKE_VERSION VERSION_GREATER "3.1")
    install(
      FILES $<TARGET_PDB_FILE:vector_functions>
      DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
      OPTIONAL)
  endif()
endif()
target_link_libraries(vector_functions libgroonga)

read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/string_sources.am STRING_SOURCES)
set_source_files_properties(${STRING_SOURCES}
                            PROPERTIES COMPILE_FLAGS "${GRN_C_COMPILE_FLAGS}")
if(GRN_EMBED)
  add_library(string_functions STATIC ${STRING_SOURCES})
  set_target_properties(string_functions PROPERTIES POSITION_INDEPENDENT_CODE
                                                    ON)
else()
  add_library(string_functions MODULE ${STRING_SOURCES})
  set_target_properties(string_functions PROPERTIES PREFIX "" OUTPUT_NAME
                                                              "string")
  install(TARGETS string_functions DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
  if(MSVC)
    install(
      FILES $<TARGET_PDB_FILE:string_functions>
      DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
      OPTIONAL)
  endif()
endif()
target_link_libraries(string_functions libgroonga onigmo)
target_include_directories(string_functions PRIVATE ${ONIGMO_INCLUDE_DIRS})

read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/number_sources.am NUMBER_SOURCES)
set_source_files_properties(${NUMBER_SOURCES}
                            PROPERTIES COMPILE_FLAGS "${GRN_CXX_COMPILE_FLAGS}")
if(GRN_EMBED)
  add_library(number_functions STATIC ${NUMBER_SOURCES})
  set_target_properties(number_functions PROPERTIES POSITION_INDEPENDENT_CODE
                                                    ON)
else()
  add_library(number_functions MODULE ${NUMBER_SOURCES})
  set_target_properties(number_functions PROPERTIES PREFIX "" OUTPUT_NAME
                                                              "number")
  install(TARGETS number_functions DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
  if(MSVC)
    install(
      FILES $<TARGET_PDB_FILE:number_functions>
      DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
      OPTIONAL)
  endif()
endif()
target_link_libraries(number_functions libgroonga "${M_LIBS}")

read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/time_sources.am TIME_SOURCES)
set_source_files_properties(${TIME_SOURCES} PROPERTIES COMPILE_FLAGS
                                                       "${GRN_C_COMPILE_FLAGS}")
if(GRN_EMBED)
  add_library(time_functions STATIC ${TIME_SOURCES})
  set_target_properties(time_functions PROPERTIES POSITION_INDEPENDENT_CODE ON)
else()
  add_library(time_functions MODULE ${TIME_SOURCES})
  set_target_properties(time_functions PROPERTIES PREFIX "" OUTPUT_NAME "time")
  install(TARGETS time_functions DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
  if(MSVC)
    install(
      FILES $<TARGET_PDB_FILE:time_functions>
      DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
      OPTIONAL)
  endif()
endif()
target_link_libraries(time_functions libgroonga)

read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/index_column_sources.am
               INDEX_COLUMN_SOURCES)
set_source_files_properties(${INDEX_COLUMN_SOURCES}
                            PROPERTIES COMPILE_FLAGS "${GRN_C_COMPILE_FLAGS}")
if(GRN_EMBED)
  add_library(index_column_functions STATIC ${INDEX_COLUMN_SOURCES})
  set_target_properties(index_column_functions
                        PROPERTIES POSITION_INDEPENDENT_CODE ON)
else()
  add_library(index_column_functions MODULE ${INDEX_COLUMN_SOURCES})
  set_target_properties(index_column_functions
                        PROPERTIES PREFIX "" OUTPUT_NAME "index_column")
  install(TARGETS index_column_functions
          DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
  if(MSVC)
    install(
      FILES $<TARGET_PDB_FILE:index_column_functions>
      DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
      OPTIONAL)
  endif()
endif()
target_link_libraries(index_column_functions libgroonga)

read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/math_sources.am MATH_SOURCES)
set_source_files_properties(${MATH_SOURCES} PROPERTIES COMPILE_FLAGS
                                                       "${GRN_C_COMPILE_FLAGS}")
if(GRN_EMBED)
  add_library(math_functions STATIC ${MATH_SOURCES})
  set_target_properties(math_functions PROPERTIES POSITION_INDEPENDENT_CODE ON)
else()
  add_library(math_functions MODULE ${MATH_SOURCES})
  set_target_properties(math_functions PROPERTIES PREFIX "" OUTPUT_NAME "math")
  install(TARGETS math_functions DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
  if(MSVC)
    install(
      FILES $<TARGET_PDB_FILE:math_functions>
      DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
      OPTIONAL)
  endif()
endif()
target_link_libraries(math_functions libgroonga)

if(GRN_WITH_H3)
  set(H3_SOURCES h3.c)
  set_source_files_properties(${H3_SOURCES} PROPERTIES COMPILE_FLAGS
                                                       "${GRN_C_COMPILE_FLAGS}")
  if(GRN_EMBED)
    add_library(h3_functions STATIC ${H3_SOURCES})
    set_target_properties(h3_functions PROPERTIES POSITION_INDEPENDENT_CODE ON)
  else()
    add_library(h3_functions MODULE ${H3_SOURCES})
    set_target_properties(h3_functions PROPERTIES PREFIX "" OUTPUT_NAME "h3")
    install(TARGETS h3_functions DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
    if(MSVC)
      install(
        FILES $<TARGET_PDB_FILE:h3_functions>
        DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
        OPTIONAL)
    endif()
  endif()
  target_link_libraries(h3_functions libgroonga)
endif()

if(GRN_WITH_LLAMA_CPP)
  set(LANGUAGE_MODEL_SOURCES language_model.c)
  set_source_files_properties(${LANGUAGE_MODEL_SOURCES}
                              PROPERTIES COMPILE_FLAGS "${GRN_C_COMPILE_FLAGS}")
  if(GRN_EMBED)
    add_library(language_model_functions STATIC ${LANGUAGE_MODEL_SOURCES})
    set_target_properties(language_model_functions
                          PROPERTIES POSITION_INDEPENDENT_CODE ON)
  else()
    add_library(language_model_functions MODULE ${LANGUAGE_MODEL_SOURCES})
    set_target_properties(language_model_functions
                          PROPERTIES PREFIX "" OUTPUT_NAME "language_model")
    install(TARGETS language_model_functions
            DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}")
    if(MSVC)
      install(
        FILES $<TARGET_PDB_FILE:language_model_functions>
        DESTINATION "${GRN_FUNCTIONS_PLUGIN_DIR}"
        OPTIONAL)
    endif()
  endif()
  target_link_libraries(language_model_functions libgroonga)
endif()