summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author“pengxuanzheng” <[email protected]>2022-07-27 09:43:41 +0000
committer“pengxuanzheng” <[email protected]>2022-07-28 07:33:53 +0000
commita076662ade64ace4c1019fd726b5077c5df76abe (patch)
treecc889d584bf66115f8cb917569a872cae0c205c0
parentb72a2c160fd81df15732b17468aa24d81c43b4a1 (diff)
✨ feat(TSG-11154): 增加静态库v1.1.3
-rw-r--r--.gitignore1
-rw-r--r--CMakeLists.txt2
-rw-r--r--ci/travis.sh1
-rw-r--r--example/CMakeLists.txt15
-rw-r--r--example/luatest/CMakeLists.txt11
-rw-r--r--gtest/CMakeLists.txt16
-rw-r--r--src/CMakeLists.txt25
-rw-r--r--support/CMakeLists.txt4
-rw-r--r--support/luajit2-2.1-agentzh.zipbin1231367 -> 1231422 bytes
9 files changed, 58 insertions, 17 deletions
diff --git a/.gitignore b/.gitignore
index 7ab6613..8da8e9a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@ example/luatest/build/
example/multithread
example/single_thread
example/luatest/lib/build/
+support/luajit2-2.1-agentzh/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 513ee1c..4db224e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,8 @@ else()
message(FATAL_ERROR "Could not find the program cppcheck.")
endif()
+option(BUILD_STATIC_LIB "build lib${lib_name}.a static lib" OFF) #默认不生成静态库
+
add_subdirectory(support)
add_subdirectory(src)
add_subdirectory(example)
diff --git a/ci/travis.sh b/ci/travis.sh
index 928c108..c1472e0 100644
--- a/ci/travis.sh
+++ b/ci/travis.sh
@@ -44,6 +44,7 @@ cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DENABLE_DEVEL=$ENABLE_DEVEL_SWITCH \
+ -DBUILD_STATIC_LIB=$BUILD_STATIC_LIB \
..
make
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index e672a03..b46502e 100644
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -3,13 +3,22 @@ project (single_thread)
project (multithread)
link_directories("${CMAKE_BINARY_DIR}/src")
-link_libraries(tsglua pthread)
+link_directories("${CMAKE_BINARY_DIR}/support/luajit2/src/luajit2/src/")
add_definitions(-g -W -Wall)
add_executable(single_thread single_thread.cpp)
add_executable(multithread multithread.cpp)
-add_dependencies(single_thread ${lib_name}_shared)
-add_dependencies(multithread ${lib_name}_shared)
+if (BUILD_STATIC_LIB)
+ add_dependencies(single_thread ${lib_name}_static)
+ add_dependencies(multithread ${lib_name}_static)
+ target_link_libraries(single_thread ${lib_name}_static pthread)
+ target_link_libraries(multithread ${lib_name}_static pthread)
+else()
+ add_dependencies(single_thread ${lib_name}_shared)
+ add_dependencies(multithread ${lib_name}_shared)
+ target_link_libraries(single_thread ${lib_name}_shared pthread)
+ target_link_libraries(multithread ${lib_name}_shared pthread)
+endif()
add_subdirectory(luatest) \ No newline at end of file
diff --git a/example/luatest/CMakeLists.txt b/example/luatest/CMakeLists.txt
index 4f2205e..3031e84 100644
--- a/example/luatest/CMakeLists.txt
+++ b/example/luatest/CMakeLists.txt
@@ -3,10 +3,15 @@ project (luatest)
include_directories("../../src/")
link_directories("${CMAKE_BINARY_DIR}/src")
-link_libraries(tsglua pthread dl)
+#link_directories("${CMAKE_BINARY_DIR}/support/luajit2/src/luajit2/src/")
add_definitions(-g -W -Wall -O0 -rdynamic)
add_executable(luatest luatest.cpp)
-add_dependencies(luatest ${lib_name}_shared)
-target_link_libraries(luatest pcap tsglua pthread dl)
+if (BUILD_STATIC_LIB)
+ add_dependencies(luatest ${lib_name}_static)
+ target_link_libraries(luatest ${lib_name}_static pthread dl pcap)
+else()
+ add_dependencies(luatest ${lib_name}_shared)
+ target_link_libraries(luatest ${lib_name}_shared pthread dl pcap)
+endif()
diff --git a/gtest/CMakeLists.txt b/gtest/CMakeLists.txt
index a692e69..2a1aad1 100644
--- a/gtest/CMakeLists.txt
+++ b/gtest/CMakeLists.txt
@@ -3,15 +3,23 @@ project(gtest_tsg_lua)
aux_source_directory(. SRCS)
include_directories("../src")
-link_directories("/opt/MESA/lib")
-link_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/include/")
+include_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/include/")
+#link_directories("/opt/MESA/lib")
link_directories("${CMAKE_BINARY_DIR}/src/")
link_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/lib/")
-link_libraries(tsglua gtest gtest_main pthread)
+link_directories("${CMAKE_BINARY_DIR}/support/luajit2/src/luajit2/src/")
+
+#link_libraries(libluajit.a tsglua gtest gtest_main pthread)
add_definitions(-g -W -Wall)
add_executable(gtest_tsg_lua ${SRCS})
-add_dependencies(gtest_tsg_lua ${lib_name}_shared gtest)
+if (BUILD_STATIC_LIB)
+ add_dependencies(gtest_tsg_lua ${lib_name}_static gtest)
+ target_link_libraries(gtest_tsg_lua ${lib_name}_static gtest gtest_main pthread)
+else()
+ add_dependencies(gtest_tsg_lua ${lib_name}_shared gtest)
+ target_link_libraries(gtest_tsg_lua ${lib_name}_shared gtest gtest_main pthread)
+endif()
#target_link_libraries(gtest_tsg_lua tsglua gtest gtest_main pthread)
add_test(NAME SOFT_LINK COMMAND sh -c "ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/script" "${CMAKE_CURRENT_BINARY_DIR}/script")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fe1aacf..ac7c491 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -13,11 +13,26 @@ if (TSG_LUA_DEBUG)
add_definitions(-DTSG_LUA_DEBUG)
endif()
+if (BUILD_STATIC_LIB)
+ add_library(${lib_name}_static STATIC ${DIR_LIB_SRCS})
+ target_link_libraries(${lib_name}_static dl luajit2-static)
+ set_target_properties(${lib_name}_static PROPERTIES OUTPUT_NAME ${lib_name})
-add_library(${lib_name}_shared SHARED ${DIR_LIB_SRCS})
-target_link_libraries(${lib_name}_shared dl luajit2-static)
-set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name})
+ add_custom_command(TARGET ${lib_name}_static POST_BUILD
+ COMMAND ar x ${CMAKE_CURRENT_BINARY_DIR}/lib${lib_name}.a
+ COMMAND ar x ${LUAJIT_INSTALL_PREFIX}/lib/libluajit-5.1.a
+ COMMAND ar cru lib${lib_name}.a *.o
+ COMMAND ranlib lib${lib_name}.a
+ COMMAND rm *.o
+ )
+ install(TARGETS ${lib_name}_static LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
+else()
+ add_library(${lib_name}_shared SHARED ${DIR_LIB_SRCS})
+ target_link_libraries(${lib_name}_shared dl luajit2-static)
+ set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name})
+
+ install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
+endif()
-install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
install(FILES ${CMAKE_SOURCE_DIR}/src/tsg_lua_interface.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT HEADER)
-install(PROGRAMS ${CMAKE_SOURCE_DIR}/example/checktools/checktools.lua DESTINATION ${LUAJIT_INSTALL_PREFIX}/bin COMPONENT LIBRARIES)
+install(PROGRAMS ${CMAKE_SOURCE_DIR}/example/checktools/checktools.lua DESTINATION ${LUAJIT_INSTALL_PREFIX}/bin COMPONENT LIBRARIES) \ No newline at end of file
diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt
index c3cb5c7..ea15756 100644
--- a/support/CMakeLists.txt
+++ b/support/CMakeLists.txt
@@ -4,8 +4,8 @@ include(ExternalProject)
### luajit-2.1
set(LUAJIT2_ROOT ${CMAKE_CURRENT_BINARY_DIR})
set(LUAJIT2_URL ${CMAKE_CURRENT_SOURCE_DIR}/luajit2-2.1-agentzh.zip)
-set(LUAJIT2_URL_MD5 6e17cd2263473f9b85b47d0736cf12da)
-set(LUAJIT2_MAKE cd ${LUAJIT2_ROOT}/luajit2/src/luajit2 && make)
+set(LUAJIT2_URL_MD5 37c03c469aa461ec44a0e4cebf1ceb52)
+set(LUAJIT2_MAKE cd ${LUAJIT2_ROOT}/luajit2/src/luajit2 && make BUILD_STATIC_LIB=${BUILD_STATIC_LIB})
set(LUAJIT2_INSTALL cd ${LUAJIT2_ROOT}/luajit2/src/luajit2 && make install PREFIX=${LUAJIT_INSTALL_PREFIX})
ExternalProject_Add(luajit2
diff --git a/support/luajit2-2.1-agentzh.zip b/support/luajit2-2.1-agentzh.zip
index 12a941f..11e3fc5 100644
--- a/support/luajit2-2.1-agentzh.zip
+++ b/support/luajit2-2.1-agentzh.zip
Binary files differ