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: von 127.0.0.1
