CMake: jak utworzyć jedną wspólną bibliotekę ze wszystkich statycznych bibliotek podprojektów?

Mam następujący układ:

top_project
    + subproject1
    + subproject2

Każdy zsubproject1 isubproject2 tworzy statyczną bibliotekę. Chciałbym połączyć te statyczne biblioteki w jednej udostępnionej bibliotece wtop_project poziom.

Informacje, które do tej pory zebrałem, to:

Skompiluj używając-fPic (konieczne na wszystkich systemach oprócz Windows) w celu stworzenia kodu niezależnego od pozycji, który umożliwi połączenie bibliotek statycznych w jedną bibliotekę współdzieloną lub rozpakuje wszystkie biblioteki statyczne (np. używającar) i ponownie połącz je w bibliotekę współdzieloną (co uważam za nieeleganckie i nieprzenośne rozwiązanie)Wszystkie pliki źródłowe muszą być podane bezpośrednio doadd_library polecenie: z jakiegoś powodu, którego nie rozumiem, po prostu piszącadd_library(${PROJECT_NAME} SHARED subproject1 subproject2) nie działa zgodnie z oczekiwaniami (zasadniczo tworzy pustą bibliotekę i nie rejestruje poprawnie zależności)W CMake jest funkcja biblioteki OBJECT, ale nie sądzę, że jej celem jest robienie tego, co chcę.

jakieś pomysły?

questionAnswers(4)

yourAnswerToTheQuestion