Исправлена статья fltk-msys2-cmake

This commit is contained in:
MultiMote 2023-01-14 22:00:44 +03:00
parent 36fcf08557
commit 671617dd43

View File

@ -34,18 +34,6 @@ project(fltk-app)
option(STATIC_BUILD "Enable static build" ON) 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 в системе # Ищем библиотеку fltk в системе
# При успешном поиске станут доступны переменные, описанные здесь: # При успешном поиске станут доступны переменные, описанные здесь:
# https://cmake.org/cmake/help/latest/module/FindFLTK.html # https://cmake.org/cmake/help/latest/module/FindFLTK.html
@ -54,12 +42,25 @@ find_package(FLTK REQUIRED)
# Указываем исходные файлы проекта # Указываем исходные файлы проекта
add_executable(fltk-app main.cpp) 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 для компиляции (в случаях, когда они находятся в произвольном месте) # Добавляем путь к заготовкам fltk для компиляции (в случаях, когда они находятся в произвольном месте)
target_include_directories(fltk-app PUBLIC ${FLTK_INCLUDE_DIRS}) target_include_directories(fltk-app PUBLIC ${FLTK_INCLUDE_DIRS})
# Подключаем библиотеки # Подключаем библиотеки
# Правильнее было бы использовать ${FLTK_BASE_LIBRARY}, но у меня при статической сборке оставались зависимости target_link_libraries(fltk-app ${FLTK_BASE_LIBRARY})
target_link_libraries(fltk-app fltk)
# Также добавляем необходимые библиотеки при сборке на windows # Также добавляем необходимые библиотеки при сборке на windows
if(WIN32) if(WIN32)