Articles of cmake

Como começar a trabalhar com o GTest e o CMake

Recentemente, fui vendido usando o CMake para compilar meus projetos C ++ e agora gostaria de começar a escrever alguns testes de unidade para o meu código. Decidi usar o utilitário de teste do Google para ajudar nisso, mas preciso de ajuda para começar. Todos os dias eu estive lendo vários guias e exemplos incluem […]

CMAKE: Imprimir todas as variables ​​acessíveis em um script

Eu estou querendo saber se há uma maneira de imprimir todas as variables ​​acessíveis no CMAKE. Eu não estou interessado nas variables ​​do CMAKE – como na opção –help-variables. Estou falando das minhas variables ​​que defini ou das variables ​​definidas pelos scripts incluídos. Atualmente estou incluindo INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake) e estava esperando que eu pudesse imprimir […]

Como instruir o CMake para usar o compilador de arquitetura de compilation?

Ao usar o CMake para compilation cruzada, geralmente é especificado um arquivo toolchain através da opção CMAKE_TOOLCHAIN_FILE . Na terminologia do GNU , pode-se especificar o conjunto de ferramentas de arquitetura do host usando este arquivo. No entanto, geralmente não se pode esperar que seja possível executar qualquer coisa construída com este conjunto de ferramentas. […]

Não é possível especificar o compilador com o CMake

Eu tenho um problema com este arquivo CMakeLists.txt : cmake_minimum_required(VERSION 2.6) SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc) SET(CMAKE_CXX_COMPILER C:/MinGW/bin/g++) project(cmake_test) add_executable(a.exe test.cpp) Chamando cmake com: cmake -G “MinGW Makefiles” , ele falha com a seguinte saída: c:\Users\pietro.mele\projects\tests\buildSystem_test\cmake_test>cmake -G “MinGW Makefiles” . — The C compiler identification is GNU 4.6.1 — The CXX compiler identification is GNU 4.6.1 — Check […]

CMake: use um vinculador personalizado

Eu quero configurar um conjunto de ferramentas personalizado com o qmake. Eu configurei o compilador, mas não sei como definir o vinculador. Este erro é relatado porque o cmake tenta usar o compilador para vincular: The C compiler “xgcc.exe” is not able to compile a simple test program. Aqui há um trecho do meu arquivo […]

É possível fazer com que o CMake construa uma versão estática e compartilhada da mesma biblioteca?

Mesma fonte, tudo isso, só quer uma versão estática e compartilhada. Fácil de fazer?

Como suportar tanto vcxproj para cmake em um projeto?

Estou desenvolvendo o projeto c + + de plataforma cruzada. A ideia original é trabalhar com msvc2010 e depois compilar para outros sistemas com a ajuda de CMake e Hudson. Não parece ser conveniente alterar manualmente os arquivos do CMake após as alterações nas configurações do estúdio. Então, qual é a maneira mais fácil: para […]

Alterar valor padrão de CMAKE_CXX_FLAGS_DEBUG e amigos no CMake

Eu gostaria de alterar os valores padrão para CMAKE_CXX_FLAGS_RELEASE ou CMAKE_CXX_FLAGS_DEBUG no CMake. Basicamente, eu tenho alguns padrões de projeto que diferem apenas um pouco do CMake (para lançamento, por exemplo), e eu não deveria ter que me perguntar “Oh, o -O3 deles ou o nosso -O2 tem precedência quando adicionados com add_compile_options”. Agora, sei […]

Biblioteca de compartilhamento CMake com vários executáveis

Meu projeto contém vários executáveis ​​que compartilham algum código comum. Eu gostaria de colocar o código comum em uma biblioteca estática que os executáveis ​​podem vincular. (O código comum é bem pequeno e eu prefiro não lidar com bibliotecas compartilhadas). A tree de origem é algo como isto: projeto CMakeLists.txt comum CMakeLists.txt src include app1 […]

Variável de ambiente usada pelo CMake para detectar ferramentas de compilador do Visual C ++ para Ninja

Eu tenho ferramentas de compilador Mingw64 GCC 6.3.0 (sempre no PATH ) e Visual C ++ do Visual Studio 2017 RTM (não no PATH ). Se eu corro cmake . -G “MinGW Makefiles” cmake . -G “MinGW Makefiles” , o GCC 6.3.0 será selecionado. Se eu corro cmake . -G “Ninja” cmake . -G “Ninja” […]