diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,13 +50,11 @@ ecm_install_po_files_as_qm(po) endif() add_definitions(-DQT_NO_FOREACH) +add_subdirectory(data) add_subdirectory(src) if (BUILD_TESTING) add_subdirectory(autotests) endif() -if (NOT CMAKE_CROSSCOMPILING) - add_subdirectory(data) -endif() if(TARGET Qt5::Widgets) add_subdirectory(examples) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,22 +1,25 @@ -project(sonnetdata) - include(ECMMarkNonGuiExecutable) -add_executable(parsetrigrams parsetrigrams.cpp) -add_executable(gentrigrams gentrigrams.cpp) +if(NOT CMAKE_CROSSCOMPILING) + add_executable(parsetrigrams parsetrigrams.cpp) + add_executable(gentrigrams gentrigrams.cpp) -# Mark it as non-gui so we won't create an app bundle on Mac OS X -ecm_mark_nongui_executable(parsetrigrams) -ecm_mark_nongui_executable(gentrigrams) + # Mark it as non-gui so we won't create an app bundle on Mac OS X + ecm_mark_nongui_executable(parsetrigrams) + ecm_mark_nongui_executable(gentrigrams) -TARGET_LINK_LIBRARIES(parsetrigrams PUBLIC Qt5::Core) -TARGET_LINK_LIBRARIES(gentrigrams PUBLIC Qt5::Core KF5::SonnetCore) -INSTALL(TARGETS parsetrigrams ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) -INSTALL(TARGETS gentrigrams ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) + TARGET_LINK_LIBRARIES(parsetrigrams PUBLIC Qt5::Core) + TARGET_LINK_LIBRARIES(gentrigrams PUBLIC Qt5::Core KF5::SonnetCore) + INSTALL(TARGETS parsetrigrams ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) + INSTALL(TARGETS gentrigrams ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) -if(CMAKE_CROSSCOMPILING AND PARSETRIGRAMS_EXECUTABLE) - add_executable(KF5::parsetrigrams IMPORTED GLOBAL) - set_target_properties(KF5::parsetrigrams PROPERTIES IMPORTED_LOCATION ${PARSETRIGRAMS_EXECUTABLE}) -else() add_executable(KF5::parsetrigrams ALIAS parsetrigrams) +else() + if (NOT PARSETRIGRAMS_EXECUTABLE AND KF5_HOST_TOOLING) + find_program(PARSETRIGRAMS_EXECUTABLE parsetrigrams PATHS ${KF5_HOST_TOOLING}/${BIN_INSTALL_DIR} NO_DEFAULT_PATH) + endif() + if (PARSETRIGRAMS_EXECUTABLE) + add_executable(KF5::parsetrigrams IMPORTED GLOBAL) + set_target_properties(KF5::parsetrigrams PROPERTIES IMPORTED_LOCATION ${PARSETRIGRAMS_EXECUTABLE}) + endif() endif() diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -13,11 +13,10 @@ languagefilter.cpp ) -if (NOT CMAKE_CROSSCOMPILING) - # create trigrams file + add trigrams resource +# create trigrams file + add trigrams resource +if (TARGET KF5::parsetrigrams) add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/data/trigrams.map" - DEPENDS parsetrigrams - COMMAND $ "${CMAKE_SOURCE_DIR}/data/trigrams" > "${CMAKE_BINARY_DIR}/data/trigrams.map") + COMMAND KF5::parsetrigrams "${CMAKE_SOURCE_DIR}/data/trigrams" > "${CMAKE_BINARY_DIR}/data/trigrams.map") configure_file(${CMAKE_SOURCE_DIR}/data/trigrams.qrc.in ${CMAKE_BINARY_DIR}/data/trigrams.qrc @ONLY) qt5_add_resources(sonnetcore_SRCS "${CMAKE_BINARY_DIR}/data/trigrams.qrc") endif()