cmake: подключение библиотеки к библиотеке
Прошу помощи в конфигурации 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++)
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 (статически и динамически)?
И попутно ... в конфиге я определяю битность, в которую собирается проект.
А можно ли как-то подобным образом определить static/shared и MSVC/mingw?