Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Freemine.cmake.external.proj #29455

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b5555de
tz -> ext_tz
freemine Dec 28, 2024
4bd7670
lz4 -> ext_lz4
freemine Dec 28, 2024
4d9f9bc
zlib -> ext_zlib
freemine Dec 28, 2024
54b5826
cjson -> ext_cjson
freemine Dec 28, 2024
4ab5b40
1. lzma -> ext_lzma2
freemine Dec 29, 2024
27b1b28
rocksdb -> ext_rocksdb
freemine Dec 29, 2024
237fb18
libuv -> ext_libuv
freemine Jan 1, 2025
cacfa42
geos -> ext_geos
freemine Jan 1, 2025
76844b7
pcre2 -> ext_pcre2
freemine Jan 1, 2025
11765e4
contrib/lemon by add_subdirectory rather than ExternalProject_Add
freemine Jan 1, 2025
9c7c651
bugfix: lemon is included by add_subdirectory rather than ExternalPro…
freemine Jan 2, 2025
17d0bec
temporarily: enable BUILD_CONTRIB in github ci workflow
freemine Jan 2, 2025
d569a69
add -v to ci make; and remove deps/rocksdb_static from -I....
freemine Jan 3, 2025
aefa617
tweak for the moment, remove shortly after this
freemine Jan 3, 2025
4d3ff9d
Merge remote-tracking branch 'tdengine/main' into freemine.cmake.exte…
freemine Jan 3, 2025
eee657c
only remove libgeos from ci script
freemine Jan 3, 2025
f98b281
make VERBOSE=1 to check failed command
freemine Jan 3, 2025
afb94d3
using geos shared-lib
freemine Jan 3, 2025
9affe54
geos and related
freemine Jan 3, 2025
53bec18
1. building Release version of external project to shrink target size
freemine Jan 3, 2025
e89018c
revert test cases back to <TDengine>/main:4984a6ceba16c161ff2ed293ba5…
freemine Jan 3, 2025
aef7e6d
Merge branch 'main' into freemine.cmake.external.proj
tomchon Jan 17, 2025
7579212
typo correction
freemine Jan 17, 2025
49057e7
Merge branch 'main' into freemine.cmake.external.proj
tomchon Feb 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .github/workflows/taosd-ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,25 @@ jobs:
sudo apt update -y
sudo apt install -y build-essential cmake \
libgeos-dev libjansson-dev libsnappy-dev liblzma-dev libz-dev \
zlib1g-dev pkg-config libssl-dev gawk
zlib1g pkg-config libssl-dev gawk

- name: Install dependencies on macOS
if: runner.os == 'macOS'
run: |
brew update
brew install argp-standalone gflags pkg-config snappy zlib geos jansson gawk openssl


- name: Build and install TDengine
run: |
mkdir debug && cd debug
cmake .. -DBUILD_TOOLS=true \
-DBUILD_KEEPER=true \
-DBUILD_HTTP=false \
-DBUILD_TEST=true \
-DBUILD_DEPENDENCY_TESTS=false
make -j 4
-DBUILD_TEST=false \
-DBUILD_CONTRIB=true

make VERBOSE=1 -j 4
sudo make install
which taosd
which taosadapter
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/taoskeeper-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
- name: Install system dependencies
run: |
sudo apt update -y
sudo apt install -y build-essential cmake libgeos-dev
sudo apt install -y build-essential cmake

- name: Install TDengine
run: |
mkdir debug
cd debug
cmake .. -DBUILD_HTTP=false -DBUILD_JDBC=false -DBUILD_TOOLS=false -DBUILD_TEST=off -DBUILD_KEEPER=true -DBUILD_DEPENDENCY_TESTS=false
make -j 4
cmake .. -DBUILD_HTTP=false -DBUILD_JDBC=false -DBUILD_TOOLS=false -DBUILD_TEST=off -DBUILD_KEEPER=true -DBUILD_DEPENDENCY_TESTS=false -DBUILD_CONTRIB=true
make VERBOSE=1 -j 4
sudo make install
which taosd
which taosadapter
Expand Down
22 changes: 15 additions & 7 deletions cmake/cjson_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@

# cjson
ExternalProject_Add(cjson

set(_base "${TD_CONTRIB_DIR}/cJSON")
set(_ins "${TD_CONTRIB_DIR}/cJSON/install")

ExternalProject_Add(ext_cjson
GIT_REPOSITORY https://github.com/taosdata-contrib/cJSON.git
GIT_TAG v1.7.15
SOURCE_DIR "${TD_CONTRIB_DIR}/cJson"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
PREFIX "${_base}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${_ins}
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release
CMAKE_ARGS -DENABLE_CJSON_TEST:BOOL=OFF
CMAKE_ARGS -DCJSON_OVERRIDE_BUILD_SHARED_LIBS:BOOL=ON
CMAKE_ARGS -DCJSON_BUILD_SHARED_LIBS:BOOL=OFF
GIT_SHALLOW true
)

set(TD_CONTRIB_EXT_CJSON_INC_DIR "${_ins}/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_CJSON_LIB_DIR "${_ins}/lib" PARENT_SCOPE)

23 changes: 16 additions & 7 deletions cmake/geos_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@

# geos
ExternalProject_Add(geos

set(_base "${TD_CONTRIB_DIR}/geos")
set(_ins "${TD_CONTRIB_DIR}/geos/install")

ExternalProject_Add(ext_geos
GIT_REPOSITORY https://github.com/libgeos/geos.git
GIT_TAG 3.12.0
SOURCE_DIR "${TD_CONTRIB_DIR}/geos"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
PREFIX "${_base}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${_ins}
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release
CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=OFF
CMAKE_ARGS -DBUILD_TESTING:BOOL=OFF
CMAKE_ARGS -DCMAKE_C_FLAGS:STRING=-fPIC
CMAKE_ARGS -DCMAKE_CXX_FLAGS:STRING=-fPIC
GIT_SHALLOW true
)

set(TD_CONTRIB_EXT_GEOS_INC_DIR "${_ins}/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_GEOS_LIB_DIR "${_ins}/lib" PARENT_SCOPE)

15 changes: 6 additions & 9 deletions cmake/lemon_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# lemon

ExternalProject_Add(
lemon
SOURCE_DIR ${TD_CONTRIB_DIR}/lemon
CONFIGURE_COMMAND ""
BUILD_COMMAND "${C_COMPILER_LEMON}" -o ${TD_CONTRIB_DIR}/lemon/lemon ${TD_CONTRIB_DIR}/lemon/lemon.c
INSTALL_COMMAND ""
BUILD_IN_SOURCE 1
BUILD_ALWAYS 1
)
add_subdirectory(lemon)

# NOTE: freemine: choose a better approach later
set(TD_CONTRIB_LEMON "${CMAKE_BINARY_DIR}/build/bin/lemon" PARENT_SCOPE)
set(TD_CONTRIB_LEMON_SRC_DIR "${TD_CONTRIB_DIR}/lemon" PARENT_SCOPE)

21 changes: 14 additions & 7 deletions cmake/libuv_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@

# libuv
ExternalProject_Add(libuv
set(_base "${TD_CONTRIB_DIR}/libuv")
set(_ins "${TD_CONTRIB_DIR}/libuv/install")

ExternalProject_Add(ext_libuv
GIT_REPOSITORY https://github.com/libuv/libuv.git
GIT_TAG v1.49.2
SOURCE_DIR "${TD_CONTRIB_DIR}/libuv"
BINARY_DIR "${TD_CONTRIB_DIR}/libuv"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
PREFIX "${_base}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${_ins}
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release
CMAKE_ARGS -DLIBUV_BUILD_SHARED:BOOL=OFF
CMAKE_ARGS -DCMAKE_C_FLAGS=-fPIC
CMAKE_ARGS -DBUILD_TESTING:BOOL=OFF
GIT_SHALLOW true
)

set(TD_CONTRIB_EXT_LIBUV_INC_DIR "${_ins}/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_LIBUV_LIB_DIR "${_ins}/lib" PARENT_SCOPE)

22 changes: 15 additions & 7 deletions cmake/lz4_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@

# lz4
ExternalProject_Add(lz4

set(_base "${TD_CONTRIB_DIR}/lz4")
set(_ins "${TD_CONTRIB_DIR}/lz4/install")

ExternalProject_Add(ext_lz4
GIT_REPOSITORY https://github.com/taosdata-contrib/lz4.git
GIT_TAG v1.9.3
SOURCE_DIR "${TD_CONTRIB_DIR}/lz4"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
PREFIX "${_base}"
SOURCE_SUBDIR "build/cmake"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${_ins}
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release
CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=OFF
CMAKE_ARGS -DBUILD_STATIC_LIBS:BOOL=ON
GIT_SHALLOW true
)

set(TD_CONTRIB_EXT_LZ4_INC_DIR "${_ins}/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_LZ4_LIB_DIR "${_ins}/lib" PARENT_SCOPE)

59 changes: 59 additions & 0 deletions cmake/lzma2.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
diff --git a/Makefile b/Makefile
index e386021..850e9f8 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ libfast-lzma2 : $(OBJ)
@echo "Build static & dynamic library."
$(CC) -shared -pthread -Wl,-soname,$(SONAME) -o $(REAL_NAME) $(OBJ)
$(AR) $(STATIC_LIBNAME) $(OBJ)
+ touch libfast-lzma2
@echo "Library build SUCCESS."

-include $(DEP)
@@ -56,32 +57,42 @@ DESTDIR:=
PREFIX:=/usr/local
LIBDIR:=$(DESTDIR)$(PREFIX)/lib

-.PHONY: install
-install:
+install: libfast-lzma2
ifeq ($(OS),Windows_NT)
strip -g $(REAL_NAME)
+ touch install
else
mkdir -p $(LIBDIR)
+ cp $(STATIC_LIBNAME) $(LIBDIR)/$(STATIC_LIBNAME)
+ strip -g $(LIBDIR)/$(STATIC_LIBNAME)
cp $(REAL_NAME) $(LIBDIR)/$(REAL_NAME)
strip -g $(LIBDIR)/$(REAL_NAME)
chmod 0755 $(LIBDIR)/$(REAL_NAME)
cd $(LIBDIR) && ln -sf $(REAL_NAME) $(LINKER_NAME)
- ldconfig $(LIBDIR)
+ # ldconfig $(LIBDIR)
mkdir -p $(DESTDIR)$(PREFIX)/include
cp fast-lzma2.h $(DESTDIR)$(PREFIX)/include/
cp fl2_errors.h $(DESTDIR)$(PREFIX)/include/
+ cp xxhash.h $(DESTDIR)$(PREFIX)/include/
+ touch install
endif

.PHONY: uninstall
uninstall:
ifeq ($(OS),Windows_NT)
rm -f libfast-lzma2.dll
+ rm -f install
+ rm -f libfast-lzma2
else
+ rm -f $(LIBDIR)/$(STATIC_LIBNAME)
rm -f $(LIBDIR)/$(LINKER_NAME)
rm -f $(LIBDIR)/$(REAL_NAME)
- ldconfig $(LIBDIR)
+ # ldconfig $(LIBDIR)
rm -f $(DESTDIR)$(PREFIX)/include/fast-lzma2.h
rm -f $(DESTDIR)$(PREFIX)/include/fl2_errors.h
+ rm -f $(DESTDIR)$(PREFIX)/include/xxhash.h
+ rm -f install
+ rm -f libfast-lzma2
endif

.PHONY: test
29 changes: 18 additions & 11 deletions cmake/lzma_CMakeLists.txt.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,22 @@
# xz

if (${TD_LINUX})
ExternalProject_Add(lzma2
GIT_REPOSITORY https://github.com/conor42/fast-lzma2.git
SOURCE_DIR "${TD_CONTRIB_DIR}/lzma2"
#BINARY_DIR ""
BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND make
INSTALL_COMMAND ""
TEST_COMMAND ""
GIT_SHALLOW true
)
set(_base "${TD_CONTRIB_DIR}/lzma")
set(_ins "${TD_CONTRIB_DIR}/lzma/install")

ExternalProject_Add(ext_lzma2
GIT_REPOSITORY https://github.com/conor42/fast-lzma2.git
PREFIX "${_base}"
BUILD_IN_SOURCE TRUE
PATCH_COMMAND git restore -- Makefile && git apply ${TD_SUPPORT_DIR}/lzma2.diff
CONFIGURE_COMMAND ""
BUILD_COMMAND pwd && make
INSTALL_COMMAND make DESTDIR=${_ins} install
TEST_COMMAND ""
GIT_SHALLOW true
EXCLUDE_FROM_ALL true
)

set(TD_CONTRIB_EXT_LZMA2_INC_DIR "${_ins}/usr/local/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_LZMA2_LIB_DIR "${_ins}/usr/local/lib" PARENT_SCOPE)
endif()
20 changes: 12 additions & 8 deletions cmake/pcre2_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@

# pcre2
ExternalProject_Add(pcre2
set(_base "${TD_CONTRIB_DIR}/pcre2")
set(_ins "${TD_CONTRIB_DIR}/pcre2/install")

ExternalProject_Add(ext_pcre2
GIT_REPOSITORY https://github.com/PCRE2Project/pcre2.git
GIT_TAG pcre2-10.43
SOURCE_DIR "${TD_CONTRIB_DIR}/pcre2"
#BINARY_DIR "${TD_CONTRIB_DIR}/pcre2"
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
PREFIX "${_base}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${_ins}
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release
CMAKE_ARGS -DPCRE2_BUILD_TESTS:BOOL=OFF
GIT_SHALLOW true
)

set(TD_CONTRIB_EXT_PCRE2_INC_DIR "${_ins}/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_PCRE2_LIB_DIR "${_ins}/lib" PARENT_SCOPE)

57 changes: 29 additions & 28 deletions cmake/rocksdb_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@

# rocksdb
if (${BUILD_CONTRIB})
ExternalProject_Add(rocksdb
URL https://github.com/facebook/rocksdb/archive/refs/tags/v8.1.1.tar.gz
URL_HASH MD5=3b4c97ee45df9c8a5517308d31ab008b
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_DIR "${TD_CONTRIB_DIR}/deps-download"
SOURCE_DIR "${TD_CONTRIB_DIR}/rocksdb"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
GIT_SHALLOW true
)
else()
if (NOT ${TD_LINUX})
ExternalProject_Add(rocksdb
URL https://github.com/facebook/rocksdb/archive/refs/tags/v8.1.1.tar.gz
URL_HASH MD5=3b4c97ee45df9c8a5517308d31ab008b
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_DIR "${TD_CONTRIB_DIR}/deps-download"
SOURCE_DIR "${TD_CONTRIB_DIR}/rocksdb"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
GIT_SHALLOW true
)
endif()
if (${BUILD_CONTRIB} OR NOT ${TD_LINUX})
set(_base "${TD_CONTRIB_DIR}/rocksdb")
set(_ins "${TD_CONTRIB_DIR}/rocksdb/install")
ExternalProject_Add(ext_rocksdb
URL https://github.com/facebook/rocksdb/archive/refs/tags/v8.1.1.tar.gz
URL_HASH MD5=3b4c97ee45df9c8a5517308d31ab008b
# DOWNLOAD_NO_PROGRESS 1

PREFIX "${_base}"

CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${_ins}
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release
# CMAKE_ARGS -DWITH_JEMALLOC:BOOL=OFF
CMAKE_ARGS -DWITH_FALLOCATE:BOOL=OFF
CMAKE_ARGS -DWITH_GFLAGS:BOOL=OFF
CMAKE_ARGS -DPORTABLE:BOOL=ON
CMAKE_ARGS -DWITH_LIBURING:BOOL=OFF
CMAKE_ARGS -DFAIL_ON_WARNINGS:BOOL=OFF
# CMAKE_ARGS -DWITH_ALL_TESTS:BOOL=OFF
CMAKE_ARGS -DWITH_BENCHMARK_TOOLS:BOOL=OFF
CMAKE_ARGS -DWITH_TOOLS:BOOL=OFF
CMAKE_ARGS -DROCKSDB_BUILD_SHARED:BOOL=OFF

GIT_SHALLOW true
)

set(TD_CONTRIB_EXT_ROCKSDB_INC_DIR "${_ins}/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_ROCKSDB_LIB_DIR "${_ins}/lib" PARENT_SCOPE)
endif()

16 changes: 9 additions & 7 deletions cmake/tz_CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# timezone
ExternalProject_Add(tz

ExternalProject_Add(ext_tz
GIT_REPOSITORY https://github.com/eggert/tz.git
GIT_TAG main
SOURCE_DIR "${TD_CONTRIB_DIR}/tz"
BINARY_DIR ""
PREFIX "${TD_CONTRIB_DIR}/tz"
BUILD_IN_SOURCE true
CONFIGURE_COMMAND ""
#BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_COMMAND make CFLAGS+=-fPIC CFLAGS+=-DTHREAD_SAFE=1
INSTALL_COMMAND make DESTDIR=${TD_CONTRIB_DIR}/tz/install install
TEST_COMMAND ""
GIT_SHALLOW true
GIT_PROGRESS true
BUILD_COMMAND ""
)

# set(TD_CONTRIB_EXT_TZ_INC_DIR "${TD_CONTRIB_DIR}/tz/install/usr/include" PARENT_SCOPE)
set(TD_CONTRIB_EXT_TZ_LIB_DIR "${TD_CONTRIB_DIR}/tz/install/usr/lib" PARENT_SCOPE)

Loading
Loading