From: Iceyer Date: Thu, 22 Feb 2018 03:34:40 +0000 (+0800) Subject: feat: support generate cmake with qt function X-Git-Tag: archive/raspbian/5.7.12-2+rpi1^2~130^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=524b055929b7be84375a45f9d10cbc3a0ecac6de;p=dtkcore.git feat: support generate cmake with qt function Change-Id: I38fe8a0edb2f0901b32a7fd11bcfca9d723000f4 --- diff --git a/cmake/DtkCore/DtkCoreConfig.cmake.in b/cmake/DtkCore/DtkCoreConfig.cmake.in deleted file mode 100644 index cc7eb96..0000000 --- a/cmake/DtkCore/DtkCoreConfig.cmake.in +++ /dev/null @@ -1,4 +0,0 @@ - -set(DTKCORE_INCLUDE_DIR "/usr/include/libdtk-2.0.6/DCore") -set(DtkCore_LIBRARIES dtkcore) -include_directories("${INCLUDE_INSTALLED_DIR}") diff --git a/src/dtk_cmake.prf b/src/dtk_cmake.prf index 33bdf9e..e3f2d57 100644 --- a/src/dtk_cmake.prf +++ b/src/dtk_cmake.prf @@ -2,20 +2,45 @@ #TODO: check cmake exist +defineReplace(capitalizingString) { + RAW=$$1 + FIRST = $$upper($$section(RAW, "", 1, 1)) + OTHERS = $$section(RAW, "", 2, -1) + return($$FIRST$$OTHERS) +} + !win*: { -isEmpty(CMAKE_MODULE): error("CMAKE_MODULE must not empty") + +MODULE_DEPENDS=$$find(QT, dtk*) +CMAKE_MODULE_DEPENDS=$$replace(MODULE_DEPENDS,"dtk","") + +MODULE_NAME=$$replace(TARGET,"dtk","") +MODULE_NAME=$$capitalizingString($$MODULE_NAME) +CMAKE_MODULE=Dtk$$MODULE_NAME WORK_DIR=$$_PRO_FILE_PWD_ message("config cmake module: $$CMAKE_MODULE") +MODULE_PRI_CONT = "" + +for(MODULE_DEPEND, CMAKE_MODULE_DEPENDS) { + MODULE_DEPEND=$$capitalizingString($$MODULE_DEPEND) + CMAKE_CONTENT += "find_package(Dtk REQUIRED $$MODULE_DEPEND)" +} + CMAKE_MODULE_INCLUDE_DIR=$$upper($${CMAKE_MODULE})_INCLUDE_DIR +INC_DIR = $$replace(includes.path, "/", "/") + +CMAKE_CONTENT += "set($${CMAKE_MODULE_INCLUDE_DIR} \"$${INC_DIR}\")" +CMAKE_CONTENT += "set($${CMAKE_MODULE}_LIBRARIES $$TARGET)" +CMAKE_CONTENT += "include_directories(\"${"$${CMAKE_MODULE_INCLUDE_DIR}"}\")" -INC_DIR = $$replace(includes.path, "/", "\/") -CMD = sed -E \'s/$${CMAKE_MODULE_INCLUDE_DIR} \".*\"\\)$/$${CMAKE_MODULE_INCLUDE_DIR} \"$${INC_DIR}\"\\)/\' $$WORK_DIR/../cmake/$${CMAKE_MODULE}/$${CMAKE_MODULE}Config.cmake.in > $$WORK_DIR/../cmake/$${CMAKE_MODULE}/$${CMAKE_MODULE}Config.cmake -message("write cmake file to: $$WORK_DIR/../cmake/$${CMAKE_MODULE}/$${CMAKE_MODULE}Config.cmake") -system($$CMD) | error("config cmake failed") +CMAKE_PATH=$$WORK_DIR/../cmake/$${CMAKE_MODULE}/$${CMAKE_MODULE}Config.cmake +mkpath($$WORK_DIR/../cmake/$${CMAKE_MODULE}) +message("write cmake file to: $$CMAKE_PATH") +write_file($$CMAKE_PATH, CMAKE_CONTENT) | error("Aborting.") -cmake_config.files = $$PWD/../cmake +cmake_config.files = $$WORK_DIR/../cmake cmake_config.path = $$LIB_INSTALL_DIR INSTALLS += cmake_config diff --git a/src/src.pro b/src/src.pro index c009e92..13e8fb9 100644 --- a/src/src.pro +++ b/src/src.pro @@ -82,8 +82,8 @@ includes.path = $${DTK_INCLUDEPATH}/DCore INSTALLS += includes target #cmake -CMAKE_MODULE=DtkCore include(dtk_cmake.prf) +#qt module include(dtk_module.prf) prf.files+= $$PWD/*.prf