@@ -32,6 +32,13 @@ else()
32
32
message (FATAL_ERROR "STARROCKS_GCC_HOME environment variable is not set" )
33
33
endif ()
34
34
35
+ # disable pkgconfig searching libraries, all libraries are static imported
36
+ set (CMAKE_DISABLE_FIND_PACKAGE_PkgConfig ON )
37
+ # Workaround error of `Unknown CMake command "pkg_check_modules".'`
38
+ # refer to: https://gitlab.kitware.com/cmake/cmake/-/issues/17043
39
+ macro ( pkg_check_modules )
40
+ endmacro ()
41
+
35
42
project (starrocks CXX C)
36
43
37
44
# set CMAKE_BUILD_TYPE
@@ -163,10 +170,10 @@ set(GPERFTOOLS_HOME "${THIRDPARTY_DIR}/gperftools")
163
170
164
171
# Set all libraries
165
172
166
- add_library (gflags STATIC IMPORTED )
173
+ add_library (gflags STATIC IMPORTED GLOBAL )
167
174
set_target_properties (gflags PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libgflags.a)
168
175
169
- add_library (glog STATIC IMPORTED )
176
+ add_library (glog STATIC IMPORTED GLOBAL )
170
177
set_target_properties (glog PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libglog.a)
171
178
172
179
add_library (re2 STATIC IMPORTED GLOBAL )
@@ -195,8 +202,10 @@ set_target_properties(gmock PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/l
195
202
add_library (snappy STATIC IMPORTED )
196
203
set_target_properties (snappy PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libsnappy.a)
197
204
198
- add_library (curl STATIC IMPORTED )
199
- set_target_properties (curl PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libcurl.a)
205
+ set (CURL_INCLUDE_DIR "${THIRDPARTY_DIR} /include" CACHE PATH "curl include path" )
206
+ set (CURL_LIBRARY "${THIRDPARTY_DIR} /lib/libcurl.a" CACHE FILEPATH "curl static library" )
207
+ add_library (curl STATIC IMPORTED GLOBAL )
208
+ set_target_properties (curl PROPERTIES IMPORTED_LOCATION ${CURL_LIBRARY} )
200
209
201
210
add_library (lz4 STATIC IMPORTED )
202
211
set_target_properties (lz4 PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/liblz4.a)
@@ -210,7 +219,7 @@ set_target_properties(thriftnb PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/li
210
219
add_library (mysql STATIC IMPORTED )
211
220
set_target_properties (mysql PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/mariadb/libmariadbclient.a)
212
221
213
- add_library (hdfs STATIC IMPORTED )
222
+ add_library (hdfs STATIC IMPORTED GLOBAL )
214
223
set_target_properties (hdfs PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libhdfs.a)
215
224
216
225
# Allow FindOpenSSL() to find correct static libraries
@@ -235,7 +244,7 @@ set_target_properties(libevent PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/li
235
244
add_library (openssl STATIC IMPORTED )
236
245
set_target_properties (openssl PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libssl.a)
237
246
238
- add_library (leveldb STATIC IMPORTED )
247
+ add_library (leveldb STATIC IMPORTED GLOBAL )
239
248
set_target_properties (leveldb PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib/libleveldb.a)
240
249
241
250
add_library (jemalloc STATIC IMPORTED )
@@ -262,7 +271,7 @@ set_target_properties(arrow PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib64
262
271
add_library (parquet STATIC IMPORTED )
263
272
set_target_properties (parquet PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib64/libparquet.a)
264
273
265
- add_library (brpc STATIC IMPORTED )
274
+ add_library (brpc STATIC IMPORTED GLOBAL )
266
275
set_target_properties (brpc PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR} /lib64/libbrpc.a)
267
276
268
277
add_library (rocksdb STATIC IMPORTED )
@@ -385,53 +394,88 @@ if (${WITH_CACHELIB} STREQUAL "ON")
385
394
endif ()
386
395
387
396
if ("${USE_STAROS} " STREQUAL "ON" )
397
+ if (DEFINED ENV{STARLET_INSTALL_DIR})
398
+ set (STARLET_INSTALL_DIR "$ENV{STARLET_INSTALL_DIR} " )
399
+ else ()
400
+ set (STARLET_INSTALL_DIR "${THIRDPARTY_DIR} /starlet" )
401
+ endif ()
402
+ if (NOT EXISTS ${STARLET_INSTALL_DIR} )
403
+ message (FATAL_ERROR "Starlet thirdparty directory ${STARLET_INSTALL_DIR} not exist!" )
404
+ else ()
405
+ message (STATUS "Searching starlet related libraries from ${STARLET_INSTALL_DIR} ..." )
406
+ endif ()
407
+
388
408
# explicitly import ZLIB::ZLIB which is required by starlet thirdparty
389
409
add_library (ZLIB::ZLIB STATIC IMPORTED )
390
410
set_target_properties (ZLIB::ZLIB PROPERTIES IMPORTED_LOCATION ${LIBZ} )
411
+
412
+ # Tell cmake that PROTOBUF library is already found
413
+ set (PROTOBUF_FOUND TRUE )
391
414
# starrocks project has its imported libprotobuf.a and libre2.a
392
415
# add following ALIAS so grpc can find the correct dependent libraries
393
416
add_library (protobuf::libprotobuf ALIAS protobuf)
394
417
add_library (re2::re2 ALIAS re2)
395
-
418
+ add_library (glog::glog ALIAS glog)
419
+ add_library (gflags::gflags_static ALIAS gflags)
420
+ add_library (hdfs::hdfs ALIAS hdfs)
421
+ add_library (brpc::brpc ALIAS brpc)
422
+ add_library (leveldb::leveldb ALIAS leveldb)
423
+ add_library (CURL::libcurl ALIAS curl)
424
+
425
+ set (absl_DIR "${STARLET_INSTALL_DIR} /third_party/lib/cmake/absl" CACHE PATH "absl search path" FORCE)
426
+ find_package (absl CONFIG REQUIRED)
427
+
428
+ # required by azure-*
429
+ set (LIBXML2_INCLUDE_DIR "${STARLET_INSTALL_DIR} /third_party/include/libxml2" CACHE PATH "libxml2 include path" )
430
+ set (LIBXML2_LIBRARY "${STARLET_INSTALL_DIR} /third_party/lib/libxml2.a" CACHE FILEPATH "libxml2 static library" )
431
+ add_library (libxml2 STATIC IMPORTED GLOBAL )
432
+ set_target_properties (libxml2 PROPERTIES IMPORTED_LOCATION ${LIBXML2_LIBRARY} )
433
+
434
+ set (gRPC_DIR "${STARLET_INSTALL_DIR} /third_party/lib/cmake/grpc" CACHE PATH "grpc search path" )
396
435
find_package (gRPC CONFIG REQUIRED)
397
436
message (STATUS "Using gRPC ${gRPC_VERSION} " )
398
437
get_target_property (gRPC_INCLUDE_DIR gRPC::grpc INTERFACE_INCLUDE_DIRECTORIES )
399
438
include_directories (SYSTEM ${gRPC_INCLUDE_DIR} )
400
439
401
- find_package (starlet CONFIG REQUIRED)
402
- message (STATUS "Using starlet ${starlet_VERSION} " )
403
- message (STATUS "starlet inc dir: ${STARLET_INCLUDE_DIRS} " )
404
- message (STATUS "starlet lib dir: ${STARLET_LIBS} " )
405
- include_directories (SYSTEM ${STARLET_INCLUDE_DIRS} )
406
- add_library (starlet STATIC IMPORTED )
407
- set_target_properties (starlet PROPERTIES IMPORTED_LOCATION ${STARLET_LIBS} /libstarlet.a)
408
-
440
+ set (prometheus-cpp_DIR "${STARLET_INSTALL_DIR} /third_party/lib/cmake/prometheus-cpp" CACHE PATH "prometheus cpp client search path" )
409
441
find_package (prometheus-cpp CONFIG REQUIRED)
410
442
get_target_property (prometheus-cpp_INCLUDE_DIR prometheus-cpp::core INTERFACE_INCLUDE_DIRECTORIES )
411
443
message (STATUS "Using prometheus-cpp" )
412
444
message (STATUS " include: ${prometheus-cpp_INCLUDE_DIR}" )
413
445
include_directories (SYSTEM ${prometheus-cpp_INCLUDE_DIR})
414
446
415
- find_package (azure-identity-cpp CONFIG REQUIRED)
416
- find_package (azure-storage-blobs-cpp CONFIG REQUIRED)
447
+ set (azure-core-cpp_DIR "${STARLET_INSTALL_DIR} /third_party/share/azure-core-cpp" CACHE PATH "azure core cpp search path" )
417
448
find_package (azure-core-cpp CONFIG REQUIRED)
449
+ set (azure-identity-cpp_DIR "${STARLET_INSTALL_DIR} /third_party/share/azure-identity-cpp" CACHE PATH "azure identity cpp search path" )
450
+ find_package (azure-identity-cpp CONFIG REQUIRED)
451
+ set (azure-storage-common-cpp_DIR "${STARLET_INSTALL_DIR} /third_party/share/azure-storage-common-cpp" CACHE PATH "azure storage common search path" )
418
452
find_package (azure-storage-common-cpp CONFIG REQUIRED)
453
+ set (azure-storage-blobs-cpp_DIR "${STARLET_INSTALL_DIR} /third_party/share/azure-storage-blobs-cpp" CACHE PATH "azure storage blobs search path" )
454
+ find_package (azure-storage-blobs-cpp CONFIG REQUIRED)
419
455
set (AZURE_SDK_LIB Azure::azure-identity Azure::azure-storage-blobs Azure::azure-core Azure::azure-storage-common)
420
456
421
- add_library (starcachelib STATIC IMPORTED GLOBAL )
422
- set_target_properties (starcachelib PROPERTIES IMPORTED_LOCATION ${STARLET_LIBS} /libstarcache.a)
457
+ set (starcache_DIR "${STARLET_INSTALL_DIR} /starlet_install/lib/cmake/starcache" CACHE PATH "starcachelib search path" )
458
+ find_package (starcache CONFIG REQUIRED)
459
+ set_target_properties (starcache::starcache PROPERTIES IMPORTED_GLOBAL TRUE )
460
+ add_library (starcachelib ALIAS starcache::starcache)
461
+
462
+ set (starlet_DIR "${STARLET_INSTALL_DIR} /starlet_install/lib/cmake" CACHE PATH "starlet search path" )
463
+ find_package (starlet CONFIG REQUIRED)
464
+ message (STATUS "Using starlet ${starlet_VERSION} " )
465
+ message (STATUS "starlet inc dir: ${STARLET_INCLUDE_DIRS} " )
466
+ message (STATUS "starlet lib dir: ${STARLET_LIBS} " )
467
+ include_directories (SYSTEM ${STARLET_INCLUDE_DIRS} )
423
468
424
- add_library (starlet_fslib_all STATIC IMPORTED GLOBAL )
425
- set_target_properties (starlet_fslib_all PROPERTIES IMPORTED_LOCATION ${STARLET_LIBS} /libstarlet_fslib_all.a)
469
+ set_target_properties (starlet::starlet_fslib_all PROPERTIES IMPORTED_GLOBAL TRUE )
470
+ add_library (starlet_fslib_all ALIAS starlet::starlet_fslib_all)
471
+ set_target_properties (starlet::starlet PROPERTIES IMPORTED_GLOBAL TRUE )
472
+ add_library (starlet ALIAS starlet::starlet)
426
473
427
474
set (STARROCKS_DEPENDENCIES
428
475
${STARROCKS_DEPENDENCIES}
429
476
starlet
430
- gRPC::grpc++_reflection
431
- gRPC::grpc++
432
477
starlet_fslib_all
433
478
starcachelib
434
- prometheus-cpp::core
435
479
${AZURE_SDK_LIB}
436
480
)
437
481
endif ()
0 commit comments