CMakeLists.txt 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. cmake_minimum_required(VERSION 3.0)
  2. project(openPilotLog LANGUAGES CXX)
  3. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  4. set(CMAKE_AUTOUIC ON)
  5. set(CMAKE_AUTOMOC ON)
  6. set(CMAKE_AUTORCC ON)
  7. set(CMAKE_CXX_STANDARD 17)
  8. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  9. set(QT_MIN_VERSION "5.5.1")
  10. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_USE_QSTRINGBUILDER")
  11. MESSAGE ("Enabling QStringBuilder")
  12. find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
  13. find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Sql Network LinguistTools REQUIRED)
  14. # find_package(OpenSSL REQUIRED) # Pending testing
  15. set(PROJECT_SOURCES
  16. main.cpp
  17. src/opl.h
  18. # GUI
  19. mainwindow.h
  20. mainwindow.cpp
  21. mainwindow.ui
  22. # Dialogs
  23. src/gui/dialogues/firstrundialog.h
  24. src/gui/dialogues/firstrundialog.cpp
  25. src/gui/dialogues/firstrundialog.ui
  26. src/gui/dialogues/newflightdialog.h
  27. src/gui/dialogues/newflightdialog.cpp
  28. src/gui/dialogues/newflightdialog.ui
  29. src/gui/dialogues/newpilotdialog.h
  30. src/gui/dialogues/newpilotdialog.cpp
  31. src/gui/dialogues/newpilot.ui
  32. src/gui/dialogues/newtaildialog.h
  33. src/gui/dialogues/newtaildialog.cpp
  34. src/gui/dialogues/newtail.ui
  35. src/gui/dialogues/newsimdialog.h
  36. src/gui/dialogues/newsimdialog.cpp
  37. src/gui/dialogues/newsimdialog.ui
  38. # Widgets
  39. src/gui/widgets/aircraftwidget.h
  40. src/gui/widgets/aircraftwidget.cpp
  41. src/gui/widgets/aircraftwidget.ui
  42. src/gui/widgets/backupwidget.h
  43. src/gui/widgets/backupwidget.cpp
  44. src/gui/widgets/backupwidget.ui
  45. src/gui/widgets/debugwidget.h
  46. src/gui/widgets/debugwidget.cpp
  47. src/gui/widgets/debugwidget.ui
  48. src/gui/widgets/homewidget.h
  49. src/gui/widgets/homewidget.cpp
  50. src/gui/widgets/homewidget.ui
  51. src/gui/widgets/logbookwidget.h
  52. src/gui/widgets/logbookwidget.cpp
  53. src/gui/widgets/logbookwidget.ui
  54. src/gui/widgets/pilotswidget.h
  55. src/gui/widgets/pilotswidget.cpp
  56. src/gui/widgets/pilotswidget.ui
  57. src/gui/widgets/settingswidget.cpp
  58. src/gui/widgets/settingswidget.h
  59. src/gui/widgets/settingswidget.ui
  60. # Classes
  61. src/classes/acompletiondata.h
  62. src/classes/acompletiondata.cpp
  63. src/classes/acurrencyentry.h
  64. src/classes/acurrencyentry.cpp
  65. src/classes/astyle.h
  66. src/classes/astyle.cpp
  67. src/classes/astandardpaths.h
  68. src/classes/astandardpaths.cpp
  69. src/classes/aaircraftentry.h
  70. src/classes/aaircraftentry.cpp
  71. src/classes/adownload.h
  72. src/classes/adownload.cpp
  73. src/classes/aentry.h
  74. src/classes/aentry.cpp
  75. src/classes/aflightentry.h
  76. src/classes/aflightentry.cpp
  77. src/classes/apilotentry.h
  78. src/classes/apilotentry.cpp
  79. src/classes/arunguard.h
  80. src/classes/arunguard.cpp
  81. src/classes/asettings.h
  82. src/classes/asettings.cpp
  83. src/classes/atailentry.h
  84. src/classes/atailentry.cpp
  85. src/classes/atranslator.h
  86. src/classes/atranslator.cpp
  87. src/classes/ajson.h
  88. src/classes/ajson.cpp
  89. src/classes/ahash.h
  90. src/classes/ahash.cpp
  91. src/classes/asimulatorentry.h
  92. src/classes/asimulatorentry.cpp
  93. # Namespaces
  94. src/functions/acalc.h
  95. src/functions/acalc.cpp
  96. src/functions/adatetime.h
  97. src/functions/alog.h
  98. src/functions/alog.cpp
  99. src/functions/areadcsv.h
  100. src/functions/areadcsv.cpp
  101. src/functions/astat.h
  102. src/functions/astat.cpp
  103. src/functions/adate.h
  104. src/functions/adate.cpp
  105. src/functions/atime.h
  106. # Database
  107. src/database/adatabasetypes.h
  108. src/database/adatabase.h
  109. src/database/adatabase.cpp
  110. src/database/adbsetup.h
  111. src/database/adbsetup.cpp
  112. # Ressources
  113. assets/icons.qrc
  114. assets/templates.qrc
  115. assets/themes/stylesheets/breeze/breeze.qrc
  116. assets/themes/stylesheets/qdarkstyle/qdarkstyle.qrc
  117. # Testing / Debug
  118. src/testing/importCrewlounge/importcrewlounge.h
  119. src/testing/importCrewlounge/importcrewlounge.cpp
  120. src/testing/importCrewlounge/processpilots.h
  121. src/testing/importCrewlounge/processpilots.cpp
  122. src/testing/importCrewlounge/processaircraft.h
  123. src/testing/importCrewlounge/processaircraft.cpp
  124. src/testing/importCrewlounge/processflights.h
  125. src/testing/importCrewlounge/processflights.cpp
  126. src/testing/atimer.h
  127. src/testing/atimer.cpp
  128. )
  129. # This is currently a bit buggy, see
  130. # https://bugreports.qt.io/browse/QTBUG-41736
  131. # https://bugreports.qt.io/browse/QTBUG-76410
  132. # Before working on the translations themselves, check for updates and consider not updating for
  133. # every build due to danger of loss of translations...
  134. #if (Qt5Widgets_FOUND)
  135. # if (Qt5Widgets_VERSION VERSION_LESS 5.15.0)
  136. # message("Translations are available for Qt5 version >= 5.15")
  137. # else()
  138. # message("Qt > 5.15 detected. Enabling translations.")
  139. # set(TS_FILES
  140. # l10n/openpilotlog_en.ts
  141. # l10n/openpilotlog_de.ts
  142. # l10n/openpilotlog_es.ts
  143. # )
  144. # set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "l10n")
  145. # qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
  146. # endif(Qt5Widgets_VERSION VERSION_LESS 5.15.0)
  147. #endif(Qt5Widgets_FOUND)
  148. # Disable Debug output for Release Build
  149. if(CMAKE_BUILD_TYPE STREQUAL "Debug")
  150. message("Build type: Debug")
  151. elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
  152. message("Build type: Release")
  153. add_definitions(-DQT_NO_DEBUG_OUTPUT)
  154. endif()
  155. if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
  156. qt_add_executable(openPilotLog
  157. ${PROJECT_SOURCES}
  158. ${QM_FILES}
  159. )
  160. else()
  161. add_executable(openPilotLog
  162. ${PROJECT_SOURCES}
  163. ${QM_FILES}
  164. )
  165. endif()
  166. # target_link_libraries(openPilotLog PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Sql Qt${QT_VERSION_MAJOR}::Network OpenSSL::SSL)
  167. target_link_libraries(openPilotLog PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Sql Qt${QT_VERSION_MAJOR}::Network)
  168. install(TARGETS openPilotLog DESTINATION bin)