Как подключить библиотеку к Cmake?

Я всегда писал код в visual studio совершенно не парясь ни о чём, но теперь я пытаюсь написать небольшую программку, которая будет работать как на windows, так и на linux.

Хорошо, я создал проект Cmake, теперь мне нужно подключить библиотеки (glm, glfw, sockpp)

Glm и glfw я подключил, просто скопировав репозиторий из гитхаба и прописав в cmakelists.txt
add_subdirecory([путь до папки])
target_link_libraries(myproject [название библиотеки из её cmakelists])

Но с sockpp возникла проблема, при сборке компилятор пишет Ошибка LNK1104 не удается открыть файл "sockpp.lib"
При этом проект нормально собирается утилитой Cmake gui, но он выплевывает проект visual studio, а мне нужна кроссплатформенность.

Правильно ли я подключаю библиотеки к своему проекту? Как их нужно подключать?

Если я хочу подключить библиотеку, которая не содержит cmakelists.txt, а только makefile, (например asio) то как быть?

Есть ли пути написания кроссплатформенных программ без Cmake?


Ответы (1 шт):

Автор решения: maint

можно взять то что есть, что выдал cmake gui и вставлять в CMakeList.txt конструкции вроде

if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)

ориентированное на платформу

include_directories ("d:/library/include")
link_directories( "d:/library/lib") 
set( REQUIRED_LIBRARIES asio)   

elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)

ориентированное на платформу

include_directories ("/usr/local/include")
link_directories( "/usr/local/lib") 
set( REQUIRED_LIBRARIES asio)`  

endif()

приблизительно так

→ Ссылка