Skip to content

Commit 9296cc0

Browse files
committed
Full suport to Unix like Systems. Including source code and build scripts
1 parent 3365695 commit 9296cc0

30 files changed

+157
-33
lines changed

benchmark/cpp/CMakeLists.txt

+7-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ include_directories(
4343
${ALL_INC_DIRS}
4444
)
4545

46-
if(TARGET_PLATFORM STREQUAL "linux")
46+
if(TARGET_PLATFORM STREQUAL "linux" OR TARGET_PLATFORM STREQUAL "unix")
4747
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/benchmark/${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
4848
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/benchmark/${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
4949
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/benchmark/${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
@@ -75,6 +75,12 @@ if(TARGET_PLATFORM STREQUAL "android")
7575
target_link_libraries(BqLogBenchmark ${log-lib} "BqLog")
7676
elseif(TARGET_PLATFORM STREQUAL "linux")
7777
target_link_libraries(BqLogBenchmark PRIVATE pthread dl "BqLog")
78+
elseif(TARGET_PLATFORM STREQUAL "unix")
79+
target_link_libraries(BqLogBenchmark PRIVATE pthread)
80+
find_library(EXECINFO_LIBRARY execinfo)
81+
if(EXECINFO_LIBRARY)
82+
target_link_libraries(BqLogBenchmark PRIVATE ${EXECINFO_LIBRARY})
83+
endif()
7884
elseif(TARGET_PLATFORM STREQUAL "win64")
7985
# 设置启动工程
8086
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT BqLogBenchmark)

bin/tools/unix/README.MD

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
### Note
2+
Due to the diversity of Unix-like operating systems, please manually build in the build directory directly. Here, we will not provide pre-built binary files.

build/benchmark/unix_like/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CMakeFiles/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=clang CXX=clang++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../benchmark/cpp;
4+
make;
5+
cd ..;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=gcc CXX=g++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../benchmark/cpp;
4+
make;
5+
cd ..;

build/demo/unix_like/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CMakeFiles/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=clang CXX=clang++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../demo/cpp;
4+
make;
5+
cd ..;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=gcc CXX=g++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../demo/cpp;
4+
make;
5+
cd ..;

build/lib/unix_like/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*/
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
BUILD_TYPE=$1
2+
COMPILER_TYPE_C=$2
3+
COMPILER_TYPE_CXX=$3
4+
5+
CONFIG_TYPE="Debug MinSizeRel RelWithDebInfo Release"
6+
for config_type in $CONFIG_TYPE; do
7+
rm -rf $BUILD_TYPE/$config_type
8+
mkdir -p $BUILD_TYPE/$config_type
9+
cd $BUILD_TYPE/$config_type
10+
CC=$COMPILER_TYPE_C CXX=$COMPILER_TYPE_CXX cmake ../../../../../src \
11+
-DJAVA_SUPPORT=ON \
12+
-DTARGET_PLATFORM:STRING=unix \
13+
-DCMAKE_BUILD_TYPE=$config_type \
14+
-DBUILD_TYPE=$BUILD_TYPE
15+
make
16+
make install
17+
cd ../..
18+
done
19+
20+
echo "---------"
21+
echo "Finished!"
22+
echo "---------"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
./Dont_Execute_This.sh dynamic_lib clang clang++
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
./Dont_Execute_This.sh dynamic_lib gcc g++
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
./Dont_Execute_This.sh static_lib clang clang++
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
./Dont_Execute_This.sh static_lib gcc g++

build/test/unix_like/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CMakeFiles/
2+
eLogs/

build/test/unix_like/RunTest_Clang.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=clang CXX=clang++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../test;
4+
make;
5+
./BqLogUnitTest
6+
cd ..;

build/test/unix_like/RunTest_GCC.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=gcc CXX=g++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../test;
4+
make;
5+
./BqLogUnitTest
6+
cd ..;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CMakeFiles/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=clang CXX=clang++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../../tools/category_log_generator/ ;
4+
make;
5+
cd ..;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=gcc CXX=g++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../../tools/category_log_generator/ ;
4+
make;
5+
cd ..;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CMakeFiles/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=clang CXX=clang++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../../tools/log_decoder/ ;
4+
make;
5+
cd ..;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mkdir CMakeFiles;
2+
cd CMakeFiles;
3+
CC=gcc CXX=g++ cmake -DTARGET_PLATFORM:STRING=unix -DCMAKE_BUILD_TYPE=RelWithDebInfo ../../../../../tools/log_decoder/ ;
4+
make;
5+
cd ..;

demo/cpp/CMakeLists.txt

+10-2
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@ include_directories(
4242
${ALL_INC_DIRS}
4343
)
4444

45-
if(TARGET_PLATFORM STREQUAL "linux")
45+
set(BUILD_TYPE "static_lib")
46+
47+
if(TARGET_PLATFORM STREQUAL "linux" OR TARGET_PLATFORM STREQUAL "unix")
4648
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/demo/${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
4749
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/demo/${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
4850
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/demo/${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
49-
else()
51+
else()
5052
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/demo/${TARGET_PLATFORM}")
5153
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/demo/${TARGET_PLATFORM}")
5254
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../artifacts/demo/${TARGET_PLATFORM}")
@@ -74,6 +76,12 @@ if(TARGET_PLATFORM STREQUAL "android")
7476
target_link_libraries(BqLogDemo ${log-lib} "BqLog")
7577
elseif(TARGET_PLATFORM STREQUAL "linux")
7678
target_link_libraries(BqLogDemo PRIVATE pthread dl "BqLog")
79+
elseif(TARGET_PLATFORM STREQUAL "unix")
80+
target_link_libraries(BqLogDemo PRIVATE pthread dl "BqLog")
81+
find_library(EXECINFO_LIBRARY execinfo)
82+
if(EXECINFO_LIBRARY)
83+
target_link_libraries(BqLogDemo PRIVATE ${EXECINFO_LIBRARY})
84+
endif()
7785
elseif(TARGET_PLATFORM STREQUAL "win64")
7886
# 设置启动工程
7987
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT BqLogDemo)

dist/dynamic_lib/unix/README.MD

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
### Note
2+
Due to the diversity of Unix-like operating systems, please manually build in the build directory directly. Here, we will not provide pre-built binary files.

dist/static_lib/unix/README.MD

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
### Note
2+
Due to the diversity of Unix-like operating systems, please manually build in the build directory directly. Here, we will not provide pre-built binary files.

src/CMakeLists.txt

+10-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../CMake_utils.txt")
77
endif()
88

99
set(TARGET_PLATFORM "win64" CACHE STRING "Choose the target platform")
10-
set_property(CACHE TARGET_PLATFORM PROPERTY STRINGS "win64" "mac" "ios" "android" "linux")
10+
set_property(CACHE TARGET_PLATFORM PROPERTY STRINGS "win64" "mac" "ios" "android" "linux" "unix")
1111

1212
set(BUILD_TYPE "static_lib" CACHE STRING "Choose the build type")
1313
set_property(CACHE BUILD_TYPE PROPERTY STRINGS "static_lib" "dynamic_lib")
@@ -85,7 +85,7 @@ if(TARGET_PLATFORM STREQUAL "android")
8585
set(ARTIFACTS_SUB_DIR "${TARGET_PLATFORM}/${ANDROID_ABI}/${CMAKE_BUILD_TYPE}")
8686
set(DIST_SUB_DIR "${TARGET_PLATFORM}/${ANDROID_ABI}")
8787
else()
88-
if(TARGET_PLATFORM STREQUAL "linux")
88+
if(TARGET_PLATFORM STREQUAL "linux" OR TARGET_PLATFORM STREQUAL "unix")
8989
set(ARTIFACTS_SUB_DIR "${TARGET_PLATFORM}/${CMAKE_BUILD_TYPE}")
9090
else()
9191
set(ARTIFACTS_SUB_DIR "${TARGET_PLATFORM}")
@@ -99,8 +99,12 @@ else()
9999
endif()
100100
add_compile_definitions(BQ_JAVA)
101101
include_directories($ENV{JAVA_HOME}/include)
102-
include_directories($ENV{JAVA_HOME}/include/win32)
103-
include_directories($ENV{JAVA_HOME}/include/linux)
102+
file(GLOB JNI_SUBDIRS "$ENV{JAVA_HOME}/include/*")
103+
foreach(DIR IN LISTS JNI_SUBDIRS)
104+
if(IS_DIRECTORY ${DIR})
105+
include_directories(${DIR})
106+
endif()
107+
endforeach()
104108
endif()
105109
endif()
106110

@@ -132,6 +136,8 @@ if(TARGET_PLATFORM STREQUAL "android")
132136
target_link_libraries(BqLog ${android-lib} )
133137
elseif(TARGET_PLATFORM STREQUAL "linux")
134138
target_link_libraries(BqLog PRIVATE pthread)
139+
elseif(TARGET_PLATFORM STREQUAL "unix")
140+
target_link_libraries(BqLog PRIVATE pthread)
135141
find_library(EXECINFO_LIBRARY execinfo)
136142
if(EXECINFO_LIBRARY)
137143
target_link_libraries(BqLog PRIVATE ${EXECINFO_LIBRARY})

test/CMakeLists.txt

+21-21
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ include_directories(
6969
${ALL_INC_DIRS}
7070
)
7171

72-
7372
if(TARGET_PLATFORM STREQUAL "android" OR TARGET_PLATFORM STREQUAL "ios")
7473
# build shared library
7574
add_library(BqLogUnitTest
@@ -79,6 +78,21 @@ if(TARGET_PLATFORM STREQUAL "android" OR TARGET_PLATFORM STREQUAL "ios")
7978
${THIRD_PARTY_LIST}
8079
${INC_LIST})
8180
else()
81+
if(JAVA_SUPPORT)
82+
if(DEFINED ENV{JAVA_HOME})
83+
message("JAVA_HOME: $ENV{JAVA_HOME}")
84+
else()
85+
message(FATAL_ERROR "can not find environment variable JAVA_HOME")
86+
endif()
87+
add_compile_definitions(BQ_JAVA)
88+
include_directories($ENV{JAVA_HOME}/include)
89+
file(GLOB JNI_SUBDIRS "$ENV{JAVA_HOME}/include/*")
90+
foreach(DIR IN LISTS JNI_SUBDIRS)
91+
if(IS_DIRECTORY ${DIR})
92+
include_directories(${DIR})
93+
endif()
94+
endforeach()
95+
endif()
8296
# build executable
8397
add_executable(BqLogUnitTest
8498
${SRC_LIST}
@@ -97,29 +111,15 @@ if(TARGET_PLATFORM STREQUAL "android")
97111
target_link_libraries(BqLogUnitTest ${android-lib} )
98112
elseif(TARGET_PLATFORM STREQUAL "linux")
99113
target_link_libraries(BqLogUnitTest pthread dl)
100-
if(JAVA_SUPPORT)
101-
if(DEFINED ENV{JAVA_HOME})
102-
message("JAVA_HOME: $ENV{JAVA_HOME}")
103-
else()
104-
message(FATAL_ERROR "can not find environment variable JAVA_HOME")
105-
endif()
106-
add_compile_definitions(BQ_JAVA)
107-
include_directories($ENV{JAVA_HOME}/include)
108-
include_directories($ENV{JAVA_HOME}/include/linux)
109-
endif()
114+
elseif(TARGET_PLATFORM STREQUAL "unix")
115+
target_link_libraries(BqLogUnitTest PRIVATE pthread)
116+
find_library(EXECINFO_LIBRARY execinfo)
117+
if(EXECINFO_LIBRARY)
118+
target_link_libraries(BqLogUnitTest PRIVATE ${EXECINFO_LIBRARY})
119+
endif()
110120
elseif(TARGET_PLATFORM STREQUAL "win64")
111121
# set VS startup project
112122
# todo : how to set XCode startup project(schema)?
113-
if(JAVA_SUPPORT)
114-
if(DEFINED ENV{JAVA_HOME})
115-
message("JAVA_HOME: $ENV{JAVA_HOME}")
116-
else()
117-
message(FATAL_ERROR "can not find environment variable JAVA_HOME")
118-
endif()
119-
add_compile_definitions(BQ_JAVA)
120-
include_directories($ENV{JAVA_HOME}/include)
121-
include_directories($ENV{JAVA_HOME}/include/win32)
122-
endif()
123123
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT BqLogUnitTest)
124124
endif()
125125

tools/category_log_generator/CMakeLists.txt

+10-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ include_directories(
5555

5656
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../bin/tools/${TARGET_PLATFORM})
5757

58-
# 生成可执行文件
58+
# generate executable
5959
add_executable(BqLog_CategoryLogGenerator
6060
${TOOLS_LIST}
6161
${SRC_LIST}
@@ -67,5 +67,12 @@ add_executable(BqLog_CategoryLogGenerator
6767
# set start up project
6868
if(TARGET_PLATFORM STREQUAL "win64")
6969
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT BqLog_CategoryLogGenerator)
70-
endif()
71-
70+
elseif(TARGET_PLATFORM STREQUAL "linux")
71+
target_link_libraries(BqLog_CategoryLogGenerator PRIVATE pthread)
72+
elseif(TARGET_PLATFORM STREQUAL "unix")
73+
target_link_libraries(BqLog_CategoryLogGenerator PRIVATE pthread)
74+
find_library(EXECINFO_LIBRARY execinfo)
75+
if(EXECINFO_LIBRARY)
76+
target_link_libraries(BqLog_CategoryLogGenerator PRIVATE ${EXECINFO_LIBRARY})
77+
endif()
78+
endif()

tools/log_decoder/CMakeLists.txt

+8-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ include_directories(
5757

5858
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../bin/tools/${TARGET_PLATFORM})
5959

60-
# 生成可执行文件
60+
# generate executable
6161
add_executable(BqLog_LogDecoder
6262
${TOOLS_LIST}
6363
${SRC_LIST}
@@ -66,10 +66,16 @@ add_executable(BqLog_LogDecoder
6666
)
6767

6868

69-
# 设置启动工程
69+
# set start up project
7070
if(TARGET_PLATFORM STREQUAL "win64")
7171
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT BqLog_LogDecoder)
7272
elseif(TARGET_PLATFORM STREQUAL "linux")
7373
target_link_libraries(BqLog_LogDecoder PRIVATE pthread)
74+
elseif(TARGET_PLATFORM STREQUAL "unix")
75+
target_link_libraries(BqLog_LogDecoder PRIVATE pthread)
76+
find_library(EXECINFO_LIBRARY execinfo)
77+
if(EXECINFO_LIBRARY)
78+
target_link_libraries(BqLog_LogDecoder PRIVATE ${EXECINFO_LIBRARY})
79+
endif()
7480
endif()
7581

0 commit comments

Comments
 (0)