CMake: como criar uma única biblioteca compartilhada de todas as bibliotecas estáticas de subprojetos?

Eu tenho o seguinte layout:

top_project
    + subproject1
    + subproject2

Cada um dossubproject1 esubproject2 cria uma biblioteca estática. Gostaria de vincular essas bibliotecas estáticas em uma única biblioteca compartilhada notop_project nível.

A informação que eu recolhi até agora é:

Compile usando-fPic (necessário em tudo, exceto no Windows) para criar um código independente de posição que permita vincular as bibliotecas estáticas em uma única biblioteca compartilhada ou descompactar todas as bibliotecas estáticas (por exemplo, usandoar) e reconectá-los em uma biblioteca compartilhada (que eu acho que é uma solução deselegante e não portátil)Todos os arquivos de origem devem ser fornecidos explicitamente aoadd_library comando: por algum motivo que eu não consigo compreender, simplesmente escrevendoadd_library(${PROJECT_NAME} SHARED subproject1 subproject2) não funciona como esperado (essencialmente cria uma biblioteca vazia e não registra as dependências corretamente)Existe um recurso de biblioteca OBJECT no CMake, mas eu não acho que o propósito é realmente fazer o que eu quero.

Alguma ideia?

questionAnswers(4)

yourAnswerToTheQuestion