lernen:conan
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
lernen:conan [2022-05-22 16:04] – angelegt - Externe Bearbeitung 127.0.0.1 | lernen:conan [2023-10-09 16:14] (aktuell) – [Conan als Paketmanager] rrichter | ||
---|---|---|---|
Zeile 26: | Zeile 26: | ||
<code - CMakeLists.txt> | <code - CMakeLists.txt> | ||
- | cmake_minimum_required(VERSION 3.12) | + | cmake_minimum_required(VERSION 3.27) |
project(cmake_test VERSION 0.0.1 LANGUAGES CXX) | project(cmake_test VERSION 0.0.1 LANGUAGES CXX) | ||
- | # Bereitstellen externer Bibliotheken | ||
find_package(doctest REQUIRED) | find_package(doctest REQUIRED) | ||
- | # Programm, Quellen, Eigenschaften des Ziels (target) | ||
add_executable(mytests main.test.cpp sqr.cpp) | add_executable(mytests main.test.cpp sqr.cpp) | ||
- | target_compile_features(mytests PRIVATE | + | target_compile_features(mytests PRIVATE |
- | + | ||
- | # Einbinden von Bibliotheken | + | |
target_link_libraries(mytests PRIVATE doctest:: | target_link_libraries(mytests PRIVATE doctest:: | ||
</ | </ | ||
Zeile 46: | Zeile 42: | ||
===== Conan als Paketmanager ===== | ===== Conan als Paketmanager ===== | ||
- | [[https:// | + | [[https:// |
<code - conanfile.txt> | <code - conanfile.txt> | ||
[requires] | [requires] | ||
- | doctest/ | + | doctest/ |
- | fmt/8.1.1 | + | fmt/10.1.1 |
[generators] | [generators] | ||
- | cmake_find_package | + | CMakeDeps |
- | cmake_paths | + | CMakeToolchain |
</ | </ | ||
listet erforderliche Bibliotheken mit Versionsangabe auf und legt fest, welche Skripte für CMake erzeugt werden sollen. | listet erforderliche Bibliotheken mit Versionsangabe auf und legt fest, welche Skripte für CMake erzeugt werden sollen. | ||
Zeile 69: | Zeile 65: | ||
cd build | cd build | ||
conan install .. | conan install .. | ||
- | cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake | + | cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake |
cmake --build . | cmake --build . | ||
</ | </ | ||
Zeile 76: | Zeile 72: | ||
<code - setup_conan_cmake_minGW.bat> | <code - setup_conan_cmake_minGW.bat> | ||
mkdir build | mkdir build | ||
+ | conan install . -of build --build=missing --profile=mingw | ||
cd build | cd build | ||
- | conan install .. --build=missing --profile=mingw | + | cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -G "MinGW Makefiles" |
- | cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake -G "MinGW Makefiles" | + | |
cmake --build . | cmake --build . | ||
</ | </ | ||
Zeile 84: | Zeile 80: | ||
<code - mingw> | <code - mingw> | ||
- | # copy this file to C: | + | # copy this file to C: |
- | [build_requires] | + | |
[settings] | [settings] | ||
- | os=Windows | ||
- | os_build=Windows | ||
arch=x86_64 | arch=x86_64 | ||
- | | + | |
compiler=gcc | compiler=gcc | ||
- | compiler.version=11.2 | + | compiler.version=13.2 |
compiler.libcxx=libstdc++11 | compiler.libcxx=libstdc++11 | ||
- | compiler.cppstd=20 | + | compiler.cppstd=23 |
compiler.exception=seh | compiler.exception=seh | ||
compiler.threads=posix | compiler.threads=posix | ||
build_type=Debug | build_type=Debug | ||
- | [options] | ||
- | [env] | ||
</ | </ | ||
- | Dieses Profil wird beim aktuellen Nutzer '' | + | Dieses Profil wird beim aktuellen Nutzer '' |
Nun ist im C++-Quelltext | Nun ist im C++-Quelltext | ||
- | <code cpp> | + | < |
#include < | #include < | ||
+ | |||
+ | int sqr(int number) { return number * number; } | ||
int main() | int main() | ||
{ | { | ||
- | fmt::print("2*2 = {}", 2*2); | + | fmt::println("2*2 = {}", |
} | } | ||
</ | </ | ||
Zeile 115: | Zeile 108: | ||
<code - CMakeLists.txt> | <code - CMakeLists.txt> | ||
- | cmake_minimum_required(VERSION 3.12) | + | cmake_minimum_required(VERSION 3.27) |
project(cmake_fmt VERSION 0.0.1 LANGUAGES CXX) | project(cmake_fmt VERSION 0.0.1 LANGUAGES CXX) | ||
+ | find_package(doctest REQUIRED) | ||
find_package(fmt REQUIRED) | find_package(fmt REQUIRED) | ||
+ | |||
+ | add_executable(mytests main.test.cpp sqr.cpp) | ||
+ | target_compile_features(mytests PRIVATE cxx_std_23) | ||
+ | target_link_libraries(mytests PRIVATE doctest:: | ||
add_executable(fmttest main.cpp) | add_executable(fmttest main.cpp) | ||
- | target_compile_features(fmttest PRIVATE | + | target_compile_features(fmttest PRIVATE |
target_link_libraries(fmttest PRIVATE fmt::fmt) | target_link_libraries(fmttest PRIVATE fmt::fmt) | ||
</ | </ | ||
+ | Anmerkung: In C++23 kann die Funktion '' |
lernen/conan.1653228265.txt.gz · Zuletzt geändert: 2022-05-22 16:04 von 127.0.0.1