Skip to content

Commit

Permalink
Precommit for cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn committed Oct 14, 2021
1 parent 9ff555f commit b720a26
Show file tree
Hide file tree
Showing 5 changed files with 315 additions and 319 deletions.
25 changes: 25 additions & 0 deletions .cmake-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
parse:
additional_commands:
add_qt_ios_app:
pargs: 1
kwargs:
NAME: '*'
VERSION: '*'
SHORT_VERSION: '*'
LONG_VERSION: '*'
ASSET_DIR: '*'
CATALOG_APPICON: '*'
LAUNCHSCREEN_STORYBOARD: '*'
RESOURCE_FILES: '*'
CUSTOM_PLIST: '*'
BUNDLE_IDENTIFIER: '*'
flags:
- ORIENTATION_PORTRAIT
- ORIENTATION_PORTRAIT_UPDOWN
- ORIENTATION_LANDSCAPE_LEFT
- ORIENTATION_LANDSCAPE_RIGHT
- REQUIRES_FULL_SCREEN
- HIDDEN_STATUS_BAR
- IPA
- UPLOAD_SYMBOL
- VERBOSE
13 changes: 7 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,11 @@ repos:
- id: black


#- repo: https://github.com/cheshirekow/cmake-format-precommit
# rev: v0.6.10
# hooks:
# - id: cmake-format
# args: [--in-place, --max-subgroups-hwrap]

- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
additional_dependencies: [pyyaml>=5.1]
args: [--in-place]
files: '^(src|test)/.*/CMakeLists.txt'

88 changes: 38 additions & 50 deletions src/app/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
find_package(Qt5QuickCompiler QUIET)
if(Qt5QuickCompiler_FOUND AND NOT CMAKE_BUILD_TYPE MATCHES Debug AND NOT CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
QTQUICK_COMPILER_ADD_RESOURCES(RESOURCES ${CMAKE_SOURCE_DIR}/src/qml/qml.qrc)
if(Qt5QuickCompiler_FOUND
AND NOT CMAKE_BUILD_TYPE MATCHES Debug
AND NOT CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
qtquick_compiler_add_resources(RESOURCES ${CMAKE_SOURCE_DIR}/src/qml/qml.qrc)
else()
set(RESOURCES ${CMAKE_SOURCE_DIR}/src/qml/qml.qrc)
endif()

if(MSVC)
configure_file("${CMAKE_SOURCE_DIR}/platform/windows/appicon.rc.in" "${CMAKE_CURRENT_BINARY_DIR}/appicon.rc")
configure_file("${CMAKE_SOURCE_DIR}/platform/windows/appicon.rc.in"
"${CMAKE_CURRENT_BINARY_DIR}/appicon.rc")
set(ICON_SRC "${CMAKE_CURRENT_BINARY_DIR}/appicon.rc")
endif()

Expand All @@ -19,7 +22,8 @@ add_custom_target(qfield_qml SOURCES ${QML_SOURCES})
find_package(Qt5 COMPONENTS LinguistTools)

file(GLOB TS_FILES ${CMAKE_SOURCE_DIR}/i18n/*.ts)
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${CMAKE_BINARY_DIR}")
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION
"${CMAKE_BINARY_DIR}")
qt5_add_translation(QM_FILES ${TS_FILES})

# include manually copied .qm files
Expand All @@ -30,81 +34,66 @@ list(APPEND QM_FILES ${QM_FILES_MANUAL})
set(TRANSLATIONS_QRC "${CMAKE_BINARY_DIR}/translations.qrc")
file(WRITE ${TRANSLATIONS_QRC} "<RCC>\n <qresource prefix=\"/\">")
foreach(QM_FILE ${QM_FILES})
get_filename_component(QM_FILE_NAME ${QM_FILE} NAME)
file(APPEND ${TRANSLATIONS_QRC} "\n <file alias=\"i18n/${QM_FILE_NAME}\">${QM_FILE}</file>")
get_filename_component(QM_FILE_NAME ${QM_FILE} NAME)
file(APPEND ${TRANSLATIONS_QRC}
"\n <file alias=\"i18n/${QM_FILE_NAME}\">${QM_FILE}</file>")
endforeach()
file(APPEND ${TRANSLATIONS_QRC} "\n </qresource>\n</RCC>")

if (ANDROID)
add_library(qfield SHARED
main.cpp
${RESOURCES}
${CMAKE_SOURCE_DIR}/images/images.qrc
${CMAKE_SOURCE_DIR}/resources/resources.qrc
${TRANSLATIONS_QRC}
)
# add_dependencies(qfield
# assets
# )
if(ANDROID)
add_library(
qfield SHARED
main.cpp ${RESOURCES} ${CMAKE_SOURCE_DIR}/images/images.qrc
${CMAKE_SOURCE_DIR}/resources/resources.qrc ${TRANSLATIONS_QRC})
# add_dependencies(qfield assets )
else()
add_executable(qfield
main.cpp
${RESOURCES}
${CMAKE_SOURCE_DIR}/images/images.qrc
${CMAKE_SOURCE_DIR}/resources/resources.qrc
${ICON_SRC}
${TRANSLATIONS_QRC}
)
add_executable(
qfield
main.cpp ${RESOURCES} ${CMAKE_SOURCE_DIR}/images/images.qrc
${CMAKE_SOURCE_DIR}/resources/resources.qrc ${ICON_SRC} ${TRANSLATIONS_QRC})
endif()

target_compile_definitions(qfield PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_compile_definitions(
qfield PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)

if (ANDROID)
target_link_libraries(qfield PRIVATE
android
log
)
if(ANDROID)
target_link_libraries(qfield PRIVATE android log)
endif()

if(${CMAKE_SYSTEM_NAME} STREQUAL "iOS")
# debug symbols
# https://stackoverflow.com/a/49714128/1548052
# debug symbols https://stackoverflow.com/a/49714128/1548052
target_compile_options(qfield PRIVATE $<$<CXX_COMPILER_ID:Clang>:-g>)
endif()

target_link_libraries(qfield PRIVATE qfield_core ${QGIS_CORE_LIBRARY})

target_link_libraries(qfield PRIVATE
qfield_core
${QGIS_CORE_LIBRARY}
)

if (WITH_SPIX)
target_link_libraries(qfield PRIVATE
Spix::Spix
)
if(WITH_SPIX)
target_link_libraries(qfield PRIVATE Spix::Spix)
target_compile_definitions(qfield PUBLIC WITH_SPIX)
endif ()
endif()

set_target_properties(qfield PROPERTIES AUTORCC TRUE)
install(TARGETS qfield
install(
TARGETS qfield
BUNDLE DESTINATION ${QFIELD_BIN_DIR}
RUNTIME DESTINATION ${QFIELD_BIN_DIR}
LIBRARY DESTINATION ${QFIELD_LIB_DIR}
ARCHIVE DESTINATION ${QFIELD_LIB_DIR}
FRAMEWORK DESTINATION ${QFIELD_FW_SUBDIR}
PUBLIC_HEADER DESTINATION ${QFIELD_INCLUDE_DIR}
)
PUBLIC_HEADER DESTINATION ${QFIELD_INCLUDE_DIR})

if(${CMAKE_SYSTEM_NAME} STREQUAL "iOS")

include("${CMAKE_SOURCE_DIR}/cmake/QtStaticCMake.cmake")
qt_generate_plugin_import(qfield)
qt_generate_qml_plugin_import(qfield QML_SRC "${CMAKE_SOURCE_DIR}/src/qml")

# QFIELD_APP_ICON_SUFFIX should be set from command line to either _pr or _beta
# QFIELD_APP_ICON_SUFFIX should be set from command line to either _pr or
# _beta

include("${CMAKE_SOURCE_DIR}/cmake/AddQtIosApp.cmake")
add_qt_ios_app(qfield
add_qt_ios_app(
qfield
NAME "QField"
VERSION "${APK_VERSION_CODE}"
SHORT_VERSION "${APK_VERSION_CODE}"
Expand All @@ -123,7 +112,6 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "iOS")
HIDDEN_STATUS_BAR
IPA
UPLOAD_SYMBOL
VERBOSE
)
VERBOSE)

endif()
Loading

0 comments on commit b720a26

Please sign in to comment.