diff options
| author | “pengxuanzheng” <[email protected]> | 2022-07-27 09:43:41 +0000 |
|---|---|---|
| committer | “pengxuanzheng” <[email protected]> | 2022-07-28 07:33:53 +0000 |
| commit | a076662ade64ace4c1019fd726b5077c5df76abe (patch) | |
| tree | cc889d584bf66115f8cb917569a872cae0c205c0 | |
| parent | b72a2c160fd81df15732b17468aa24d81c43b4a1 (diff) | |
✨ feat(TSG-11154): 增加静态库v1.1.3
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | ci/travis.sh | 1 | ||||
| -rw-r--r-- | example/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | example/luatest/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | gtest/CMakeLists.txt | 16 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 25 | ||||
| -rw-r--r-- | support/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | support/luajit2-2.1-agentzh.zip | bin | 1231367 -> 1231422 bytes |
9 files changed, 58 insertions, 17 deletions
@@ -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 Binary files differindex 12a941f..11e3fc5 100644 --- a/support/luajit2-2.1-agentzh.zip +++ b/support/luajit2-2.1-agentzh.zip |
