forked from cartr/homebrew-qt4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
automoc4.rb
59 lines (52 loc) · 2.18 KB
/
automoc4.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Automoc4 < Formula
desc "Tool to add rules for generating Qt moc files"
homepage "https://techbase.kde.org/Development/Tools/Automoc4"
url "http://download.kde.org/stable/automoc4/0.9.88/automoc4-0.9.88.tar.bz2"
sha256 "234116f4c05ae21d828594d652b4c4a052ef75727e2d8a4f3a4fb605de9e4c49"
revision 1
bottle do
root_url "https://homebrew.bintray.com/bottles"
sha256 el_capitan: "3f9efbccd2e54425aefa23beb359a84790a702fbc83e7950a709b3a56c818898"
sha256 yosemite: "db251dc1e60d49c6ba011c28cf4d08f82468af379195c66fc5e7777b6e9fc4fd"
sha256 mavericks: "86fc5bddf7faf6f2897fc626903f0d927c8c9094e41c3d238c4b3e718acf4f47"
end
depends_on "cmake" => :build
depends_on "cartr/qt4/qt@4"
# Patch needed to find Qt in Homebrew upstreamed but upstream version
# does not apply. Won't be needed for next version.
# https://projects.kde.org/projects/kdesupport/automoc/repository/revisions/6b9597ff
patch :p0, :DATA
def install
system "cmake", ".", *std_cmake_args
system "make", "install"
end
end
__END__
--- kde4automoc.cpp.old 2009-01-22 18:50:09.000000000 +0000
+++ kde4automoc.cpp 2010-03-15 22:26:03.000000000 +0000
@@ -175,16 +175,22 @@
dotFilesCheck(line == "MOC_INCLUDES:\n");
line = dotFiles.readLine().trimmed();
const QStringList &incPaths = QString::fromUtf8(line).split(';', QString::SkipEmptyParts);
+ QSet<QString> frameworkPaths;
foreach (const QString &path, incPaths) {
Q_ASSERT(!path.isEmpty());
mocIncludes << "-I" + path;
+ if (path.endsWith(".framework/Headers")) {
+ QDir framework(path);
+ // Go up twice to get to the framework root
+ framework.cdUp();
+ framework.cdUp();
+ frameworkPaths << framework.path();
+ }
}
- // on the Mac, add -F always, otherwise headers in the frameworks won't be found
- // is it necessary to do this only optionally ? Alex
-#ifdef Q_OS_MAC
- mocIncludes << "-F/Library/Frameworks";
-#endif
+ foreach (const QString &path, frameworkPaths) {
+ mocIncludes << "-F" << path;
+ }
line = dotFiles.readLine();
dotFilesCheck(line == "CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE:\n");