From 7ec7ab1115fc54119a77f43e25f12b9d3fed7cfd Mon Sep 17 00:00:00 2001 From: wangyunlai Date: Sat, 6 May 2023 16:28:01 +0800 Subject: [PATCH] remove common_static and make common be a statis library (#161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### What problem were solved in this pull request? Issue Number: close #159 Problem: common链接库编译了两次 ### What is changed and how it works? 删除common_static,将common直接改成static链接库 --- deps/common/CMakeLists.txt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/deps/common/CMakeLists.txt b/deps/common/CMakeLists.txt index 72d6a22..feb5192 100644 --- a/deps/common/CMakeLists.txt +++ b/deps/common/CMakeLists.txt @@ -20,21 +20,13 @@ ENDFOREACH(F) #SHARED,动态库 #STATIC,静态库 -ADD_LIBRARY(common SHARED ${ALL_SRC} ) -ADD_LIBRARY(common_static STATIC ${ALL_SRC}) - -# 没有SET_TARGET_PROPERTIES, 是不能同时build 静态库和动态库, 如果只build 一种库, 就不需要这个功能 -SET_TARGET_PROPERTIES(common_static PROPERTIES OUTPUT_NAME "common") -GET_TARGET_PROPERTY(OUTPUT_VALUE common_static OUTPUT_NAME) -MESSAGE(STATUS "This is the func_static OUTPUT_NAME:" ${OUTPUT_VALUE}) +ADD_LIBRARY(common STATIC ${ALL_SRC} ) # 编译静态库时,自动会把同名的动态库给删除, 因此需要临时设置一下 SET_TARGET_PROPERTIES(common PROPERTIES CLEAN_DIRECT_OUTPUT 1) -SET_TARGET_PROPERTIES(common_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) # 设置版本号 VERSION指代动态库版本,SOVERSION指代API版本 - SET(MAIJOR_VER 1) SET(MINOR_VER 0) SET(PATCH_VER 0) @@ -47,7 +39,7 @@ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../../lib) # Target 必须在定义 ADD_EXECUTABLE 之后, programs 不受这个限制 # TARGETS和PROGRAMS 的默认权限是OWNER_EXECUTE, GROUP_EXECUTE, 和WORLD_EXECUTE,即755权限, programs 都是处理脚步类 # 类型分为RUNTIME/LIBRARY/ARCHIVE, prog -INSTALL(TARGETS common common_static +INSTALL(TARGETS common LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) @@ -60,4 +52,4 @@ FOREACH(F ${ALL_HEADER}) get_filename_component(headDir ${RELAPATH_HEADER} DIRECTORY) MESSAGE("Install " ${RELAPATH_HEADER} " to " ${CMAKE_INSTALL_PREFIX} "/" ${PROJECT_NAME} "/include/" ${headDir}) INSTALL(FILES ${RELAPATH_HEADER} DESTINATION include/${headDir}) -ENDFOREACH(F) \ No newline at end of file +ENDFOREACH(F) -- GitLab