This page enthält eine gute Zusammenfassung der Variablen CMake bereits für uns definiert. Ich finde, dass einige Variablen gleich sind. Nehmen Sie zum Beispiel das Beispiel CMAKE_SOURCE_DIR
und PROJECT_SOURCE_DIR
. Sie sind gleich und beziehen sich auf den Ordner, in dem die CMakeLists.txt der obersten Ebene definiert ist. Meine Frage ist also: Gibt es einen feinen Unterschied zwischen ihnen? Vielen Dank.Sind CMAKE_SOURCE_DIR und PROJECT_SOURCE_DIR in CMake gleich?
Antwort
Es ist eine Differenz zwischen diesen Variablen. CMAKE_SOURCE_DIR
bezieht sich tatsächlich auf den Ordner, in dem die CMakeLists.txt auf oberster Ebene definiert ist. PROJECT_SOURCE_DIR
verweist jedoch auf den Ordner der CmakeLists.txt, der den letzten project()
Befehl enthält.
Angenommen, Sie haben ein Projekt der obersten Ebene mit der Bezeichnung Outer
, das ein Unterverzeichnis mit einem eigenen Projekt namens Inner
enthält. Outer
's CMakeLists.txt hat:
project(Outer)
add_subdirectory(Inner)
und Inner
' s:
project(Inner)
Dann in diesen beiden CMakeLists Dateien, CMAKE_SOURCE_DIR
beziehen sich auf Outer
‚s Quelle Richt. Aber während PROJECT_SOURCE_DIR
für Outer
ist auch das gleiche dir, das ist nicht der Fall für Inner
. Inner
's PROJECT_SOURCE_DIR
ist das Unterverzeichnis, das seine CMakeLists.txt enthält.
Dieser Unterschied gilt für alle PROJECT_<var>
vs CMAKE_<var>
Variablen.
- 1. Wo ist CMAKE_SOURCE_DIR?
- 2. Sind Funktionsrückruf und Interprozesskommunikation gleich?
- 3. Sind clearTimeout und clearInterval gleich?
- 4. Sind "InputArray" und "Mat" in opencv gleich?
- 5. CMake und Latex
- 6. CMake drücken die „größer oder gleich“ Aussage
- 7. Sind links außen und links links gleich?
- 8. beste Art und Weise ist in CMake in ein Unterverzeichnis Verzeichnisse von Stammprojekt hinzufügen
- 9. Verwenden von Variablen in cmake-gui
- 10. Sind Servlet-Threads und Connector-Threads gleich?
- 11. mappedBy und inverse Attribute sind gleich?
- 12. Sind Delegierte und Rückrufe gleich oder ähnlich?
- 13. Gleich und nicht gleich in PHP Abfrage
- 14. Wenn der Wert in cmake nicht gleich 2,8 ist
- 15. Sind diese Aussagen gleich? (Java.nio)
- 16. Sind alle MVC-Plattformen gleich?
- 17. Sind Referenzen und Hinweise in Bezug auf Polymorphie gleich?
- 18. Sind% 20 und + gleich in einer HTTP-URL?
- 19. connection.setRequestProperty und explizit in den URLoutputstream schreiben sind sie gleich?
- 20. Warum sind ByteBuffers hashCodes gleich?
- 21. Ausführen eines Bash-Befehls über CMake
- 22. Sind diese beiden Methodenaufrufe gleich?
- 23. Sind die folgenden genau gleich?
- 24. Wenn vier Variablen gleich sind
- 25. Warum sind sie nicht gleich?
- 26. ECDH Shared Secret von OpenSSL und BouncyCastle sind nicht immer gleich, obwohl Konstanten und Domain-Parameter für beide gleich sind
- 27. Konvertierung von Makefile zu CMake
- 28. korrekte Art und Weise ist zu behandeln Pfade in CMake und C++ Projekten
- 29. Kraft Cmake find_library suchen in benutzerdefinierten Verzeichnis
- 30. CMAKE bauen verschiedene Plattform in einer Lösung
Könnten Sie auch den Unterschied mit 'CMAKE_CURRENT_SOURCE_DIR' hinzufügen? – Svalorzen