Как подключить свою библиотеку к другому проекту с помощью cmake? C++

Допустим у меня есть библиотека, как мне подключить её к другому проекту с помощью cmake? И нужно ли как-либо "собирать" эту библиотеку которую я написал для теста?

cmake:

cmake_minimum_required( VERSION 3.4.0 )
project( clientlib CXX )
set( SOURCE_LIB library.cpp )
add_library( clientlib SHARED ${SOURCE_LIB} )

library.h

#ifndef SHAREDLIBRARY_LIBRARY_H
#define SHAREDLIBRARY_LIBRARY_H

#include <iostream>
#include <string>

class Client
{
public:
    Client(int port, std::string ip, std::string data)
    :
    port_(port),
    data_(data),
    ip_(ip)
    {
        std::cout << "Debug: Client was created (" + get_address() + ")." << std::endl;
    };

    ~Client()
    {
        std::cout << "Debug: Client was destroyed." << std::endl;
    }

    std::string get_address();
    std::string get_data();
private:
    int port_;
    std::string ip_;
    std::string data_;
};

#endif //SHAREDLIBRARY_LIBRARY_H

library.cpp

#include "library.h"


std::string Client::get_address()
{
    return std::to_string(port_) + ":" + ip_;
}

std::string Client::get_data()
{
    return data_;
}

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

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

Если вы хотите прилинковать вашу библиотеку к вашей программе и они находятся в одном проекте, то это будете выглядеть примерно так:

 cmake_minimum_required( VERSION 3.4.0 )
 project( clientlib CXX )
 set( SOURCE_LIB library.cpp )
 add_library( clientlib SHARED ${SOURCE_LIB} )

 set (SOURCE_EXE main.cpp)
 add_executable( myprog ${SOURCE_EXE})
 target_link_library(myprog clientLib)

Если ваша библиотека находится в другом проекте, то все сложнее, нужно использовать find_package, вот связанный вопрос

→ Ссылка