From 496707ce5ae88e124617553e8e24d887a750777c Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Fri, 11 Jul 2014 16:45:34 -0400 Subject: Add support for compiling Xcode asset catalogs. Task-number: QBS-389 Change-Id: I2d93a55228c6ada801ed889404fac753182b82f6 Reviewed-by: Joerg Bornemann --- .../testdata/ib/assetcatalog/assetcatalogempty.qbs | 15 +++++++++ .../empty.xcassets/empty.iconset/icon_16x16.png | Bin 0 -> 3303 bytes .../empty.xcassets/empty.iconset/icon_16x16@2x.png | Bin 0 -> 3336 bytes .../auto/blackbox/testdata/ib/assetcatalog/main.c | 4 +++ tests/auto/blackbox/tst_blackbox.cpp | 37 +++++++++++++++++++++ tests/auto/blackbox/tst_blackbox.h | 1 + 6 files changed, 57 insertions(+) create mode 100644 tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs create mode 100644 tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png create mode 100644 tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png create mode 100644 tests/auto/blackbox/testdata/ib/assetcatalog/main.c (limited to 'tests/auto/blackbox') diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs b/tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs new file mode 100644 index 000000000..bdd45fede --- /dev/null +++ b/tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs @@ -0,0 +1,15 @@ +import qbs + +Project { + property bool includeIconset + + CppApplication { + Depends { name: "ib" } + files: { + var filez = ["main.c", "empty.xcassets"]; + if (project.includeIconset) + filez.push("empty.xcassets/empty.iconset"); + return filez; + } + } +} diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png new file mode 100644 index 000000000..65ff1ff57 Binary files /dev/null and b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png differ diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png new file mode 100644 index 000000000..a5c69bccd Binary files /dev/null and b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png differ diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/main.c b/tests/auto/blackbox/testdata/ib/assetcatalog/main.c new file mode 100644 index 000000000..905869dfa --- /dev/null +++ b/tests/auto/blackbox/testdata/ib/assetcatalog/main.c @@ -0,0 +1,4 @@ +int main() +{ + return 0; +} diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index c791a6993..8e0edef9e 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -2295,6 +2295,43 @@ void TestBlackbox::testIconsetApp() QVERIFY(regularFileExists(productBuildDir("iconsetapp") + "/iconsetapp.app/Contents/Resources/white.icns")); } +void TestBlackbox::testAssetCatalog() +{ + if (!HostOsInfo::isOsxHost()) + SKIP_TEST("only applies on OS X"); + + QDir::setCurrent(testDataDir + QLatin1String("/ib/assetcatalog")); + + QbsRunParameters params; + params.arguments = QStringList() << "-f" << "assetcatalogempty.qbs"; + QCOMPARE(runQbs(params), 0); + + // empty asset catalogs must still produce output + QVERIFY((bool)m_qbsStdout.contains("actool")); + + // should not produce a CAR since minimumOsxVersion will be < 10.9 + QVERIFY(!regularFileExists(productBuildDir("assetcatalogempty") + "/assetcatalogempty.app/Contents/Resources/Assets.car")); + + rmDirR(buildDir); + params.arguments.append("cpp.minimumOsxVersion:10.9"); // force CAR generation + QCOMPARE(runQbs(params), 0); + + // empty asset catalogs must still produce output + QVERIFY((bool)m_qbsStdout.contains("actool")); + QVERIFY(regularFileExists(productBuildDir("assetcatalogempty") + "/assetcatalogempty.app/Contents/Resources/Assets.car")); + + // this asset catalog happens to have an embedded icon set, + // but this should NOT be built since it is not in the files list + QVERIFY(!(bool)m_qbsStdout.contains("iconutil")); + + // now we'll add the iconset + rmDirR(buildDir); + params.arguments.append("project.includeIconset:true"); + QCOMPARE(runQbs(params), 0); + QVERIFY((bool)m_qbsStdout.contains("actool")); + QVERIFY((bool)m_qbsStdout.contains("iconutil")); +} + QString TestBlackbox::uniqueProductName(const QString &productName) const { return productName + '.' + buildProfileName; diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index 0ac522d76..320039713 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -187,6 +187,7 @@ private slots: void testTypeScript(); void testIconset(); void testIconsetApp(); + void testAssetCatalog(); private: QString uniqueProductName(const QString &productName) const; -- cgit v1.2.3