-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


cmake и внешняя либа

Суббота, 18 Июля 2020 г. 21:23 + в цитатник
JoeUser: Всем привет!

Прошу помощи в конфигурации cmake. Сення первый день вожусь с cmake и сабж не получается! :'(
Делаю тестовый проект, структура его такова:

    C:\Projects\c++\TestSFTP\
    +- main.cpp
    +- CMakeLists.txt (1)
    +- sftp++\
    +- sftp_auth.cpp
    +- sftp_tools.cpp
    +- sftp++.cpp
    +- sftp_auth.h
    +- sftp_defs.h
    +- sftp++.h
    +- CMakeLists.txt (2)

В CMakeLists.txt (1) написал:

    cmake_minimum_required(VERSION 3.5)
    project(TestSFTP LANGUAGES CXX)
    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(SOURCE_EXE main.cpp)
    include_directories(sftp++)
    add_executable(TestSFTP ${SOURCE_EXE})
    add_subdirectory(sftp++)
    target_link_libraries(TestSFTP sftp++)

A в CMakeLists.txt (2):

    cmake_minimum_required(VERSION 3.5)
    project(sftp++)
    set(SOURCE_LIB
    sftp++.cpp
    sftp_auth.cpp
    sftp_tools.cpp
    )
    set(HEADER_LIB
    sftp++.h
    sftp_defs.h
    sftp_auth.h
    )
    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    set(BITS x64)
    elseif()
    set(BITS x32)
    endif()
    message("Bits ${BITS}")
    add_library (sftp++ STATIC ${SOURCE_LIB} ${HEADER_LIB})

Пока все линкуется и собирается. Но мне нужно подключить внешнюю либу libssh2 к моей собираемой sftp++,
а она у меня находится тут для shared:

C:/Projects/c++/libssh2/vs-x64-shared/bin
C:/Projects/c++/libssh2/vs-x64-shared/include
C:/Projects/c++/libssh2/vs-x64-shared/lib

Или тут для static:

C:/Projects/c++/libssh2/vs-x64-static/include
C:/Projects/c++/libssh2/vs-x64-static/lib

Собственно, вопрос

Куда и что прописать, чтобы создаваемая мною либа sftp++ могла использовать libssh2 (статически и динамически)? :wall:

И попутно ... в конфиге я определяю битность, в которую собирается проект.
А можно ли как-то подобным образом определить static/shared и vc/mingw?

https://forum.sources.ru/index.php?showtopic=419175&view=findpost&p=3834568

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку