From d1ca207e946c90c200353cd848f973f4ee659792 Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Thu, 25 Oct 2012 10:45:28 +0200 Subject: [PATCH] Cmake build: Next try to create Resources.qrc on the fly. This time using a cmake-script instead of trying to rebuild the cache --- .../modules/LyXCreateImagesResource.cmake | 56 +++++++++++++++++++ src/frontends/qt4/CMakeLists.txt | 15 ++++- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 development/cmake/modules/LyXCreateImagesResource.cmake diff --git a/development/cmake/modules/LyXCreateImagesResource.cmake b/development/cmake/modules/LyXCreateImagesResource.cmake new file mode 100644 index 0000000000..3ab94142cc --- /dev/null +++ b/development/cmake/modules/LyXCreateImagesResource.cmake @@ -0,0 +1,56 @@ +# Copyright (c) 2006-2011 Peter Kümmel, +# 2012, Kornel Benko, +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# To call this script, one has to proved following parameters +# IMAGES_DIR # root for the directory-tree for .png and .git image files +# RESOURCE_NAME # full path of the resulting resource-file +# MAPPED_DIR # Path-prefix to be removed from the file names +# -P ${TOP_SRC_DIR}/development/cmake/modules/LyXCreateImagesResource.cmake + +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) + +file(GLOB_RECURSE images_png ${IMAGES_DIR}/*.png) +file(GLOB_RECURSE images_gif ${IMAGES_DIR}/*.gif) + +set(images ${images_png} ${images_gif}) +set(resource_name ${RESOURCE_NAME}) + +#lyx_qt_resources_file(${resource_name} "${MAPPED_DIR}" frontend_qt4_images) + +message(STATUS "Generating ${resource_name}") + +file(WRITE ${resource_name} "\n") +file(APPEND ${resource_name} "\n") + +foreach (_current_FILE ${images}) + get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE) + string(REGEX REPLACE "${MAPPED_DIR}" "" _file_name ${_abs_FILE}) + file(APPEND ${resource_name} " ${_abs_FILE}\n") +endforeach (_current_FILE) + +file(APPEND ${resource_name} "\n") +file(APPEND ${resource_name} "\n") + diff --git a/src/frontends/qt4/CMakeLists.txt b/src/frontends/qt4/CMakeLists.txt index c71873be86..bf6cff70ce 100644 --- a/src/frontends/qt4/CMakeLists.txt +++ b/src/frontends/qt4/CMakeLists.txt @@ -26,7 +26,20 @@ file(GLOB_RECURSE frontend_qt4_images_png ${TOP_SRC_DIR}/lib/images/*.png) file(GLOB_RECURSE frontend_qt4_images_gif ${TOP_SRC_DIR}/lib/images/*.gif) set(resource_name ${CMAKE_CURRENT_BINARY_DIR}/Resources.qrc) set(frontend_qt4_images ${frontend_qt4_images_png} ${frontend_qt4_images_gif}) -lyx_qt_resources_file(${resource_name} "${TOP_SRC_DIR}/lib/" frontend_qt4_images) + +#lyx_qt_resources_file(${resource_name} "${TOP_SRC_DIR}/lib/" frontend_qt4_images) + +add_custom_command( + OUTPUT ${resource_name} + COMMAND ${CMAKE_COMMAND} + -DIMAGES_DIR=${TOP_SRC_DIR}/lib/images + -DRESOURCE_NAME=${resource_name} + -DMAPPED_DIR=${TOP_SRC_DIR}/lib/ + -P ${TOP_SRC_DIR}/development/cmake/modules/LyXCreateImagesResource.cmake + ) + +add_custom_target(Resources.qrc DEPENDS ${resource_name}) + qt4_add_resources(resource_files ${resource_name}) -- 2.39.5