From c653c5eacb378f19acf6a9fa653d54d589c5d4e9 Mon Sep 17 00:00:00 2001 From: MultiMote Date: Sat, 14 Jan 2023 22:00:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=81=D1=82=D0=B0=D1=82=D1=8C=D1=8F=20flt?= =?UTF-8?q?k-msys2-cmake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/fltk-msys2-cmake/index.md | 29 +++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/content/posts/fltk-msys2-cmake/index.md b/content/posts/fltk-msys2-cmake/index.md index 1e5926a..5fe2ebc 100644 --- a/content/posts/fltk-msys2-cmake/index.md +++ b/content/posts/fltk-msys2-cmake/index.md @@ -34,18 +34,6 @@ project(fltk-app) option(STATIC_BUILD "Enable static build" ON) -if(MINGW) - # Конфигурируем статическую сборку - if(STATIC_BUILD) - set(BUILD_SHARED_LIBS OFF) - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") - endif() - - # Отключаем окно команд - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows") -endif() - # Ищем библиотеку fltk в системе # При успешном поиске станут доступны переменные, описанные здесь: # https://cmake.org/cmake/help/latest/module/FindFLTK.html @@ -54,12 +42,25 @@ find_package(FLTK REQUIRED) # Указываем исходные файлы проекта add_executable(fltk-app main.cpp) +if(MINGW) + # Конфигурируем статическую сборку + if(STATIC_BUILD) + set(BUILD_SHARED_LIBS OFF) + set_target_properties(fltk-app PROPERTIES LINK_SEARCH_START_STATIC 1) + set_target_properties(fltk-app PROPERTIES LINK_SEARCH_END_STATIC 1) + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") + endif() + + # Отключаем окно команд + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows") +endif() + # Добавляем путь к заготовкам fltk для компиляции (в случаях, когда они находятся в произвольном месте) target_include_directories(fltk-app PUBLIC ${FLTK_INCLUDE_DIRS}) # Подключаем библиотеки -# Правильнее было бы использовать ${FLTK_BASE_LIBRARY}, но у меня при статической сборке оставались зависимости -target_link_libraries(fltk-app fltk) +target_link_libraries(fltk-app ${FLTK_BASE_LIBRARY}) # Также добавляем необходимые библиотеки при сборке на windows if(WIN32)