Forward-port change to QT4_ADD_RESOURCES macro for missing rcc files.
Forward-port of commit 9ce67d30011db4528d3d0bbee36412e13cfb80cc in cmake.git. Change-Id: I2d6c14f68f1630fc0835b3103e5058f52c2d0d13 Reviewed-by: David Faure <faure@kde.org>
This commit is contained in:
parent
9a16e14666
commit
ddf5226bd7
@ -176,23 +176,31 @@ function(QT5_ADD_RESOURCES outfiles )
|
||||
get_filename_component(infile ${it} ABSOLUTE)
|
||||
get_filename_component(rc_path ${infile} PATH)
|
||||
set(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx)
|
||||
# parse file for dependencies
|
||||
# all files are absolute paths or relative to the location of the qrc file
|
||||
file(READ "${infile}" _RC_FILE_CONTENTS)
|
||||
string(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}")
|
||||
|
||||
set(_RC_DEPENDS)
|
||||
foreach(_RC_FILE ${_RC_FILES})
|
||||
string(REGEX REPLACE "^<file[^>]*>" "" _RC_FILE "${_RC_FILE}")
|
||||
if(NOT IS_ABSOLUTE "${_RC_FILE}")
|
||||
set(_RC_FILE "${rc_path}/${_RC_FILE}")
|
||||
endif()
|
||||
set(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}")
|
||||
endforeach()
|
||||
# Since this cmake function is doing the dependency scanning for these files,
|
||||
# let's make a configured file and add it as a dependency so cmake is run
|
||||
# again when dependencies need to be recomputed.
|
||||
qt5_make_output_file("${infile}" "" "qrc.depends" out_depends)
|
||||
configure_file("${infile}" "${out_depends}" COPY_ONLY)
|
||||
if(EXISTS "${infile}")
|
||||
# parse file for dependencies
|
||||
# all files are absolute paths or relative to the location of the qrc file
|
||||
file(READ "${infile}" _RC_FILE_CONTENTS)
|
||||
string(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}")
|
||||
foreach(_RC_FILE ${_RC_FILES})
|
||||
string(REGEX REPLACE "^<file[^>]*>" "" _RC_FILE "${_RC_FILE}")
|
||||
if(NOT IS_ABSOLUTE "${_RC_FILE}")
|
||||
set(_RC_FILE "${rc_path}/${_RC_FILE}")
|
||||
endif()
|
||||
set(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}")
|
||||
endforeach()
|
||||
# Since this cmake macro is doing the dependency scanning for these files,
|
||||
# let's make a configured file and add it as a dependency so cmake is run
|
||||
# again when dependencies need to be recomputed.
|
||||
qt5_make_output_file("${infile}" "" "qrc.depends" out_depends)
|
||||
configure_file("${infile}" "${out_depends}" COPY_ONLY)
|
||||
else()
|
||||
# The .qrc file does not exist (yet). Let's add a dependency and hope
|
||||
# that it will be generated later
|
||||
set(out_depends)
|
||||
endif()
|
||||
|
||||
add_custom_command(OUTPUT ${outfile}
|
||||
COMMAND ${QT_RCC_EXECUTABLE}
|
||||
ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile}
|
||||
|
@ -98,3 +98,4 @@ if (Qt5DBus_FOUND AND NOT APPLE)
|
||||
expect_pass(pass9)
|
||||
endif()
|
||||
expect_pass(pass10)
|
||||
expect_pass(pass11)
|
||||
|
24
tests/auto/cmake/pass11/CMakeLists.txt
Normal file
24
tests/auto/cmake/pass11/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
project(pass11)
|
||||
|
||||
find_package(Qt5Core REQUIRED)
|
||||
|
||||
include_directories(${Qt5Core_INCLUDE_DIRS})
|
||||
|
||||
add_definitions(${Qt5Core_DEFINITIONS})
|
||||
|
||||
qt5_add_resources(rcc_files "${CMAKE_CURRENT_BINARY_DIR}/pass11.qrc")
|
||||
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/pass11.qrc" "<!DOCTYPE RCC><RCC version=\"1.0\">
|
||||
<qresource prefix=\"/\">
|
||||
<file>${CMAKE_CURRENT_SOURCE_DIR}/resource_file.txt</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
|
||||
|
||||
add_executable(pass11 main.cpp ${rcc_files})
|
||||
target_link_libraries(pass11 ${Qt5Core_LIBRARIES})
|
49
tests/auto/cmake/pass11/main.cpp
Normal file
49
tests/auto/cmake/pass11/main.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2011 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly <stephen.kelly@kdab.com>
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** GNU Lesser General Public License Usage
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||
** file. Please review the following information to ensure the GNU Lesser
|
||||
** General Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU General
|
||||
** Public License version 3.0 as published by the Free Software Foundation
|
||||
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||
** file. Please review the following information to ensure the GNU General
|
||||
** Public License version 3.0 requirements will be met:
|
||||
** http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
** Other Usage
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <qglobal.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
// Compile error if the resource file was not created.
|
||||
Q_INIT_RESOURCE(pass11);
|
||||
return 0;
|
||||
}
|
1
tests/auto/cmake/pass11/resource_file.txt
Normal file
1
tests/auto/cmake/pass11/resource_file.txt
Normal file
@ -0,0 +1 @@
|
||||
Ken sent me.
|
Loading…
Reference in New Issue
Block a user