Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.190.152.38] |
|
Сообщ.
#1
,
|
|
|
Всем привет
Значится есть такой-вот файлик: cmake_minimum_required (VERSION 2.8) project(msck) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/rapidjson/include") set(Boost_USE_STATIC_LIBS ON) find_package(Boost COMPONENTS program_options system) if(Boost_FOUND) include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) else() message( FATAL_ERROR "Unable to find Boost libraries" ) endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pedantic -Wall -Werror -g -O3 ") if (NOT APPLE) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -pthread") endif() add_subdirectory(worker) add_subdirectory(checker) add_subdirectory(stat) add_subdirectory(conf) add_executable(msck main.cc workerpool.cc ) target_link_libraries (msck worker checker stat conf ${Boost_LIBRARIES}) Собираем, получаем на выходе динамический бинарь. Запускаем VERBOSE=1 и видим /usr/bin/c++ -std=c++14 -pedantic -Wall -Werror -g -O3 -static -pthread CMakeFiles/msck.dir/main.cc.o CMakeFiles/msck.dir/workerpool.cc.o -o msck -rdynamic worker/libworker.a checker/libchecker.a stat/libstat.a conf/libconf.a -Wl,-Bstatic -lboost_program_options -lboost_system -Wl,-Bdynamic Убираем в конце " -Wl,-Bdynamic" и получаем, как хотелось, статический. Вопрос: как указать cmake-ом чтоб не добавлял в конце такую бяку? |
Сообщ.
#2
,
|
|
|
Думаю, что через get_target_properties для проперти CMAKE_LINK_FLAGS (или как она там), потом через for each по полученному списку, выкинуть "бяку" и сделать set_target_properties обратно.
|
Сообщ.
#3
,
|
|
|
get_property(T GLOBAL PROPERTY LINK_FLAGS) message("this is T: ${T}") get_target_property(T msck LINK_FLAGS) message("this is T: ${T}") В первом случае - пусто, во втором "NOTFOUND" |