From d20c370ccc0c3bc21a87697a991b8dd522afdb71 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 22 Apr 2016 10:25:14 +0300 Subject: [PATCH] MetaStyle project removed, added -static-libstdc++ for linux build. --- .travis/build.sh | 19 +- README.md | 24 +- Telegram/MetaStyle.pro | 33 - Telegram/MetaStyle.vcxproj | 177 -- Telegram/MetaStyle.vcxproj.filters | 63 - Telegram/MetaStyle.xcodeproj/project.pbxproj | 848 ------- .../MetaStyle.xcodeproj/qt_preprocess.mak | 67 - Telegram/SourceFiles/_other/genstyles.cpp | 2015 ----------------- Telegram/SourceFiles/_other/genstyles.h | 78 - Telegram/SourceFiles/_other/msmain.cpp | 64 - Telegram/SourceFiles/_other/msmain.h | 23 - Telegram/Style.plist | 20 - Telegram/Telegram.pro | 20 +- doc/building-qmake.md | 14 +- doc/building-qtcreator.md | 14 +- doc/building-xcode-old.md | 3 +- doc/building-xcode.md | 1 - 17 files changed, 57 insertions(+), 3426 deletions(-) delete mode 100644 Telegram/MetaStyle.pro delete mode 100644 Telegram/MetaStyle.vcxproj delete mode 100644 Telegram/MetaStyle.vcxproj.filters delete mode 100644 Telegram/MetaStyle.xcodeproj/project.pbxproj delete mode 100644 Telegram/MetaStyle.xcodeproj/qt_preprocess.mak delete mode 100644 Telegram/SourceFiles/_other/genstyles.cpp delete mode 100644 Telegram/SourceFiles/_other/genstyles.h delete mode 100644 Telegram/SourceFiles/_other/msmain.cpp delete mode 100644 Telegram/SourceFiles/_other/msmain.h delete mode 100644 Telegram/Style.plist diff --git a/.travis/build.sh b/.travis/build.sh index 7deae1f95..157739889 100755 --- a/.travis/build.sh +++ b/.travis/build.sh @@ -114,12 +114,19 @@ build() { ./configure make --silent - info_msg "Build MetaStyle" - # Build MetaStyle - mkdir -p "$srcdir/tdesktop/Linux/DebugIntermediateStyle" - cd "$srcdir/tdesktop/Linux/DebugIntermediateStyle" - qmake CONFIG+=debug "../../Telegram/MetaStyle.pro" - make --silent + info_msg "Build codegen_style" + # Build codegen_style + mkdir -p "$srcdir/tdesktop/Linux/obj/codegen_style/Debug" + cd "$srcdir/tdesktop/Linux/obj/codegen_style/Debug" + qmake CONFIG+=debug "../../../../Telegram/build/qmake/codegen_style/codegen_style.pro" + make --silent + + info_msg "Build codegen_numbers" + # Build codegen_numbers + mkdir -p "$srcdir/tdesktop/Linux/obj/codegen_numbers/Debug" + cd "$srcdir/tdesktop/Linux/obj/codegen_numbers/Debug" + qmake CONFIG+=debug "../../../../Telegram/build/qmake/codegen_numbers/codegen_numbers.pro" + make --silent info_msg "Build MetaLang" # Build MetaLang diff --git a/README.md b/README.md index 32398eb24..fd3541051 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,8 @@ The source code is published under GPLv3 with OpenSSL exception, the license is ## Build instructions * [Visual Studio 2015][msvc] -* [XCode 7][xcode] -* [XCode 7 for OS X 10.6 and 10.7][xcode_old] +* [Xcode 7][xcode] +* [Xcode 7 for OS X 10.6 and 10.7][xcode_old] * [Qt Creator 3.5.1 Ubuntu][qtcreator] * [Using qmake on GNU/Linux][qmake] @@ -61,24 +61,10 @@ The source code is published under GPLv3 with OpenSSL exception, the license is * SourceFiles/art/emoji_250x.png * SourceFiles/gui/emoji_config.cpp -* ### MetaStyle +* ### codegen_style +* ### codegen_numbers - From two files and two sprites - * Resources/style_classes.txt - * Resources/style.txt - * SourceFiles/art/sprite.png - * SourceFiles/art/sprite_200x.png - - Creates two other sprites, four sprite grids and style constants code - * SourceFiles/art/sprite_125x.png - * SourceFiles/art/sprite_150x.png - * SourceFiles/art/grid.png - * SourceFiles/art/grid_125x.png - * SourceFiles/art/grid_150x.png - * SourceFiles/art/grid_200x.png - * GeneratedFiles/style_classes.h - * GeneratedFiles/style_auto.h - * GeneratedFiles/style_auto.cpp + Helper code generating console utilities. * ### MetaLang diff --git a/Telegram/MetaStyle.pro b/Telegram/MetaStyle.pro deleted file mode 100644 index a68a44385..000000000 --- a/Telegram/MetaStyle.pro +++ /dev/null @@ -1,33 +0,0 @@ -QT += core - -CONFIG(debug, debug|release) { - DEFINES += _DEBUG - OBJECTS_DIR = ./../DebugIntermediateStyle - MOC_DIR = ./GeneratedFiles/Debug - DESTDIR = ./../DebugStyle -} -CONFIG(release, debug|release) { - OBJECTS_DIR = ./../ReleaseIntermediateStyle - MOC_DIR = ./GeneratedFiles/Release - DESTDIR = ./../ReleaseStyle -} - -CONFIG += plugin static c++11 - -macx { - QMAKE_INFO_PLIST = ./SourceFiles/_other/Style.plist - QMAKE_LFLAGS += -framework Cocoa -} - -SOURCES += \ - ./SourceFiles/_other/msmain.cpp \ - ./SourceFiles/_other/genstyles.cpp \ - -HEADERS += \ - ./SourceFiles/_other/msmain.h \ - ./SourceFiles/_other/genstyles.h \ - -INCLUDEPATH += ./../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui\ - ./../../Libraries/QtStatic/qtbase/include/QtCore/5.5.1/QtCore\ - ./../../Libraries/QtStatic/qtbase/include\ - diff --git a/Telegram/MetaStyle.vcxproj b/Telegram/MetaStyle.vcxproj deleted file mode 100644 index d0562882d..000000000 --- a/Telegram/MetaStyle.vcxproj +++ /dev/null @@ -1,177 +0,0 @@ - - - - - Debug - Win32 - - - Deploy - Win32 - - - Release - Win32 - - - - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - Moc%27ing genstyles.h... - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." - Moc%27ing genstyles.h... - Moc%27ing genstyles.h... - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." - $(QTDIR)\bin\moc.exe;%(FullPath) - $(QTDIR)\bin\moc.exe;%(FullPath) - $(QTDIR)\bin\moc.exe;%(FullPath) - - - - {6F483617-7C84-4E7E-91D8-1FF28A4CE3A0} - Qt4VSv1.0 - - - - Application - v140_xp - - - Application - v140_xp - - - Application - v140_xp - - - - - - - - - - - - - - - - <_ProjectFileVersion>11.0.60610.1 - - - $(SolutionDir)$(Platform)\$(Configuration)IntermediateStyle\ - $(SolutionDir)$(Platform)\$(Configuration)Style\ - - - $(SolutionDir)$(Platform)\$(Configuration)Style\ - $(SolutionDir)$(Platform)\$(Configuration)IntermediateStyle\ - - - $(SolutionDir)$(Platform)\$(Configuration)Style\ - $(SolutionDir)$(Platform)\$(Configuration)IntermediateStyle\ - - - - UNICODE;WIN32;WIN64;%(PreprocessorDefinitions) - Disabled - ProgramDatabase - MultiThreadedDebug - .;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories) - false - - - Console - $(OutDir)\$(ProjectName).exe - $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;qtharfbuzzngd.lib;qtpcred.lib;qtfreetyped.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) - true - $(IntDir)$(TargetName).pdb - $(IntDir)$(TargetName).pgd - - - - - - UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) - - MultiThreaded - .;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories) - false - - - Console - $(OutDir)\$(ProjectName).exe - $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;qtpcre.lib;qtfreetype.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) - false - - - - - UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) - - - MultiThreaded - .;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories) - false - - - Console - $(OutDir)\$(ProjectName).exe - $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;qtpcre.lib;qtfreetype.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) - false - - - - - - - - - - - \ No newline at end of file diff --git a/Telegram/MetaStyle.vcxproj.filters b/Telegram/MetaStyle.vcxproj.filters deleted file mode 100644 index 4484e382c..000000000 --- a/Telegram/MetaStyle.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;cxx;c;def - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h - - - {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} - qrc;* - false - - - {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} - moc;h;cpp - False - - - {1ace0630-c46a-4299-a4c3-d155a4cb04bb} - cpp;moc - False - - - {2473bf06-b2ba-4f68-9bfe-72a58da61f94} - cpp;moc - False - - - {5366361d-c2b2-4ae4-929f-05d2d9f43860} - cpp;moc - False - - - - - Source Files - - - Source Files - - - Generated Files\Deploy - - - Generated Files\Debug - - - Generated Files\Release - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/Telegram/MetaStyle.xcodeproj/project.pbxproj b/Telegram/MetaStyle.xcodeproj/project.pbxproj deleted file mode 100644 index 6d7546ca2..000000000 --- a/Telegram/MetaStyle.xcodeproj/project.pbxproj +++ /dev/null @@ -1,848 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - 5E275BA59C8BA5B561E14CF4 /* Preprocess */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaStyle" */; - buildPhases = ( - 07C3AF43194CCD0F0016CFF1 /* ShellScript */, - 7EF0942E79C014DCEC8976BC /* Qt Preprocessors */, - ); - dependencies = ( - ); - name = Preprocess; - productName = "Qt Preprocess"; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 07D7954A1B5544B200DE9598 /* qtpcre in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 07D795491B5544B200DE9598 /* qtpcre */; }; - 1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DBF506D10449BFABD45B82DA /* Qt5PrintSupport */; }; - 1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */; }; - 328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DFD7912080BC557230093752 /* ApplicationServices.framework */; }; - 3D6772E35214B81E50791089 /* genstyles.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = F8BC976260B6D624F23C32D6 /* genstyles.cpp */; settings = {ATTRIBUTES = (); }; }; - 496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8F500B5166907B6D9A7C3E3D /* qico */; }; - 59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F0681BC551FC8A2B132FC646 /* qjp2 */; }; - 668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9742F24EE18EA44D52824F1E /* CoreServices.framework */; }; - 728CDDB7D7F2B9FF141651AD /* msmain.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = EF5243ECB3132AF2796F09DF /* msmain.cpp */; settings = {ATTRIBUTES = (); }; }; - 7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 31120EDB269DFF13E1D49847 /* qicns */; }; - 7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DCEFD9167C239650120B0145 /* qtga */; }; - 8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; }; - 8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = A1A67BEAA744704B29168D39 /* IOKit.framework */; }; - 8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D6193B79CECC9DD0142D1200 /* qtharfbuzzng */; }; - 9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 04391BE7A8B9D811E255100A /* Qt5Gui */; }; - A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8CF51323544B886B8F4A2232 /* qwbmp */; }; - A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D3D1BE0BEA3AEE0551AD39AC /* qdds */; }; - B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 5A80A1907B6CFFB524C1E57D /* Qt5Core */; }; - BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */; }; - C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F2453BA07315EB9F34F1CD57 /* qtiff */; }; - CBF24309A148222794F28401 /* moc_genstyles.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 861D2151FB56504EB72BDB6E /* moc_genstyles.cpp */; settings = {ATTRIBUTES = (); }; }; - D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D53D8E6A188E05078A114294 /* qcocoa */; }; - D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */; }; - E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */; }; - F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = FCC237CA5AD60B9BA4447615 /* Foundation.framework */; }; - F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = ADC6308023253CEA51F86E21 /* qwebp */; }; - F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */; }; - F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9DFF62A901D70814B8A323D4 /* Carbon.framework */; }; - FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 83D37373949868693FB7816D /* qmng */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 0746FEAC193D006900F5C3FD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5E275BA59C8BA5B561E14CF4; - remoteInfo = "Qt Preprocess"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 04391BE7A8B9D811E255100A /* Qt5Gui */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Gui; path = "/usr/local/Qt-5.5.1/lib/libQt5Gui$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 060A694B42A4555240009936 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = ""; }; - 075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = ""; }; - 07D795491B5544B200DE9598 /* qtpcre */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtpcre; path = "usr/local/Qt-5.5.1/lib/libqtpcre$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.5.1/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/unix.conf"; sourceTree = ""; }; - 10F719DFC6D0B05605ED1C16 /* MetaStyle.pro */ = {isa = PBXFileReference; lastKnownFileType = text; path = MetaStyle.pro; sourceTree = ""; }; - 111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qdds.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qdds.pri"; sourceTree = ""; }; - 16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quick.pri"; sourceTree = ""; }; - 1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qavfcamera.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qavfcamera.pri"; sourceTree = ""; }; - 23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_gui.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_gui.pri"; sourceTree = ""; }; - 2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qgenericbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qgenericbearer.pri"; sourceTree = ""; }; - 247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaccessiblequick.pri"; sourceTree = ""; }; - 24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri"; sourceTree = ""; }; - 28BD0D10214709D95B161E24 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimediawidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimediawidgets.pri"; sourceTree = ""; }; - 293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_network.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_network.pri"; sourceTree = ""; }; - 2CBD32689B153445ED220FAE /* MetaStyle.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MetaStyle.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bluetooth_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bluetooth_private.pri"; sourceTree = ""; }; - 2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xmlpatterns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xmlpatterns.pri"; sourceTree = ""; }; - 311004331A04F3D69C98643C /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_serialport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_serialport_private.pri"; sourceTree = ""; }; - 31120EDB269DFF13E1D49847 /* qicns */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qicns; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqicns$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_macextras_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_macextras_private.pri"; sourceTree = ""; }; - 346287C9E754E7C458153F03 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qwbmp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qwbmp.pri"; sourceTree = ""; }; - 360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_enginio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_enginio.pri"; sourceTree = ""; }; - 3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qdeclarativeview.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qdeclarativeview.pri"; sourceTree = ""; }; - 382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_network_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_network_private.pri"; sourceTree = ""; }; - 3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = ""; }; - 45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.5.1/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/gcc-base.conf"; sourceTree = ""; }; - 45DB132B756499D4DF38430E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = ""; }; - 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Widgets; path = "/usr/local/Qt-5.5.1/lib/libQt5Widgets$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 4C6C71914B1926119120DACD /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_enginio_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_enginio_private.pri"; sourceTree = ""; }; - 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; - 4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmldevtools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmldevtools_private.pri"; sourceTree = ""; }; - 5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_openglextensions_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_openglextensions_private.pri"; sourceTree = ""; }; - 5A80A1907B6CFFB524C1E57D /* Qt5Core */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Core; path = "/usr/local/Qt-5.5.1/lib/libQt5Core$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri"; sourceTree = ""; }; - 5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_opengl.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_opengl.pri"; sourceTree = ""; }; - 5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_core_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_core_private.pri"; sourceTree = ""; }; - 6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qml_private.pri"; sourceTree = ""; }; - 63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.5.1/mkspecs/macx-clang/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/macx-clang/qmake.conf"; sourceTree = ""; }; - 669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.5.1/mkspecs/common/shell-unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/shell-unix.conf"; sourceTree = ""; }; - 69347C39E4D922E94D0860BF /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designercomponents_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designercomponents_private.pri"; sourceTree = ""; }; - 6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_printsupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_printsupport.pri"; sourceTree = ""; }; - 6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.5.1/mkspecs/qdevice.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/qdevice.pri"; sourceTree = ""; }; - 6FF81CB4A724CE1990CEE99A /* msmain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = msmain.h; path = SourceFiles/_other/msmain.h; sourceTree = ""; }; - 74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri"; sourceTree = ""; }; - 77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_concurrent.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_concurrent.pri"; sourceTree = ""; }; - 7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_declarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_declarative.pri"; sourceTree = ""; }; - 7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designer_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designer_private.pri"; sourceTree = ""; }; - 7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_concurrent_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_concurrent_private.pri"; sourceTree = ""; }; - 7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sql.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sql.pri"; sourceTree = ""; }; - 7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_core.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_core.pri"; sourceTree = ""; }; - 817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.5.1/mkspecs/common/macx.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/macx.conf"; sourceTree = ""; }; - 82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickparticles_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickparticles_private.pri"; sourceTree = ""; }; - 83D37373949868693FB7816D /* qmng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qmng; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqmng$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 85061B1DA49D125991117950 /* /usr/local/Qt-5.5.1/mkspecs/macx-xcode/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/macx-xcode/qmake.conf"; sourceTree = ""; }; - 85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sensors.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sensors.pri"; sourceTree = ""; }; - 861D2151FB56504EB72BDB6E /* moc_genstyles.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = moc_genstyles.cpp; path = GeneratedFiles/Debug/moc_genstyles.cpp; sourceTree = ""; }; - 87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri"; sourceTree = ""; }; - 87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_websockets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_websockets_private.pri"; sourceTree = ""; }; - 8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_testlib_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_testlib_private.pri"; sourceTree = ""; }; - 892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensors_dummy.pri"; sourceTree = ""; }; - 89863CCAF1D29037AE95755D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_declarative_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_declarative_private.pri"; sourceTree = ""; }; - 8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_nfc.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_nfc.pri"; sourceTree = ""; }; - 8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri"; sourceTree = ""; }; - 8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quick_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quick_private.pri"; sourceTree = ""; }; - 8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.5.1/mkspecs/common/clang.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/clang.conf"; sourceTree = ""; }; - 8CF51323544B886B8F4A2232 /* qwbmp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwbmp; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqwbmp$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; - 8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_svg_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_svg_private.pri"; sourceTree = ""; }; - 8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_widgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_widgets_private.pri"; sourceTree = ""; }; - 8F500B5166907B6D9A7C3E3D /* qico */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qico; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqico$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - 8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_platformsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_platformsupport_private.pri"; sourceTree = ""; }; - 8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_websockets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_websockets.pri"; sourceTree = ""; }; - 946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmng.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmng.pri"; sourceTree = ""; }; - 9742F24EE18EA44D52824F1E /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; - 9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qqt7engine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qqt7engine.pri"; sourceTree = ""; }; - 9DFF62A901D70814B8A323D4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; - A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_widgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_widgets.pri"; sourceTree = ""; }; - A1A67BEAA744704B29168D39 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; - A35D133D7C0EFB42FA85D194 /* genstyles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = genstyles.h; path = SourceFiles/_other/genstyles.h; sourceTree = ""; }; - A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensors_generic.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensors_generic.pri"; sourceTree = ""; }; - A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_scripttools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_scripttools_private.pri"; sourceTree = ""; }; - A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_macextras.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_macextras.pri"; sourceTree = ""; }; - A9E30FA27827990C5F182223 /* /usr/local/Qt-5.5.1/mkspecs/common/gcc-base-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/gcc-base-mac.conf"; sourceTree = ""; }; - AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xml.pri"; sourceTree = ""; }; - AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri"; sourceTree = ""; }; - AB745978DF0F41D1801ABDA6 /* .qmake.stash */ = {isa = PBXFileReference; lastKnownFileType = file; path = .qmake.stash; sourceTree = ""; }; - ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmltest_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmltest_private.pri"; sourceTree = ""; }; - ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bluetooth.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bluetooth.pri"; sourceTree = ""; }; - ADC6308023253CEA51F86E21 /* qwebp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwebp; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqwebp$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_svg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_svg.pri"; sourceTree = ""; }; - AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qcocoa.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qcocoa.pri"; sourceTree = ""; }; - B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsqlite.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsqlite.pri"; sourceTree = ""; }; - B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickwidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickwidgets_private.pri"; sourceTree = ""; }; - B26239063A068F800A2C95F4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qwebp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qwebp.pri"; sourceTree = ""; }; - B382B645B34234E451AE5D94 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qml.pri"; sourceTree = ""; }; - B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_uitools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_uitools_private.pri"; sourceTree = ""; }; - B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_nfc_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_nfc_private.pri"; sourceTree = ""; }; - B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qminimal.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qminimal.pri"; sourceTree = ""; }; - B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri"; sourceTree = ""; }; - B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri"; sourceTree = ""; }; - BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtiff.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtiff.pri"; sourceTree = ""; }; - BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bootstrap_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bootstrap_private.pri"; sourceTree = ""; }; - BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sensors_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sensors_private.pri"; sourceTree = ""; }; - BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_serialport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_serialport.pri"; sourceTree = ""; }; - C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qico.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qico.pri"; sourceTree = ""; }; - C505A18319B9B63C63877858 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_script_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_script_private.pri"; sourceTree = ""; }; - C84546C18DCBB04166195DCF /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri"; sourceTree = ""; }; - CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qoffscreen.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qoffscreen.pri"; sourceTree = ""; }; - CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_scripttools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_scripttools.pri"; sourceTree = ""; }; - CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_clucene_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_clucene_private.pri"; sourceTree = ""; }; - CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_script.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_script.pri"; sourceTree = ""; }; - CFFBE05DB004895080314289 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsvgicon.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsvgicon.pri"; sourceTree = ""; }; - D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_printsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_printsupport_private.pri"; sourceTree = ""; }; - D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimediawidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimediawidgets_private.pri"; sourceTree = ""; }; - D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimedia.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimedia.pri"; sourceTree = ""; }; - D3D1BE0BEA3AEE0551AD39AC /* qdds */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qdds; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqdds$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - D4B32C2222F82AC56BADEB21 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; - D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.5.1/mkspecs/qconfig.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/qconfig.pri"; sourceTree = ""; }; - D5141F795670589C8CC41CBC /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_cocoaprintersupport.pri"; sourceTree = ""; }; - D53D8E6A188E05078A114294 /* qcocoa */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qcocoa; path = "/usr/local/Qt-5.5.1/plugins/platforms/libqcocoa$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - D6193B79CECC9DD0142D1200 /* qtharfbuzzng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtharfbuzzng; path = "/usr/local/Qt-5.5.1/lib/libqtharfbuzzng$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_help_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_help_private.pri"; sourceTree = ""; }; - D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_gui_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_gui_private.pri"; sourceTree = ""; }; - D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickwidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickwidgets.pri"; sourceTree = ""; }; - DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_testlib.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_testlib.pri"; sourceTree = ""; }; - DBF506D10449BFABD45B82DA /* Qt5PrintSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PrintSupport; path = "/usr/local/Qt-5.5.1/lib/libQt5PrintSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - DCEFD9167C239650120B0145 /* qtga */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtga; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqtga$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - DF8188E30892A4654B984221 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmltest.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmltest.pri"; sourceTree = ""; }; - DFD7912080BC557230093752 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; - E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_opengl_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_opengl_private.pri"; sourceTree = ""; }; - E37365B4489B4918BEBB707D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xml_private.pri"; sourceTree = ""; }; - E432DA897A5F027987342E8F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_openglextensions.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_openglextensions.pri"; sourceTree = ""; }; - E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_uitools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_uitools.pri"; sourceTree = ""; }; - E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_positioning_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_positioning_private.pri"; sourceTree = ""; }; - E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PlatformSupport; path = "/usr/local/Qt-5.5.1/lib/libQt5PlatformSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimedia_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimedia_private.pri"; sourceTree = ""; }; - EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qcorewlanbearer.pri"; sourceTree = ""; }; - EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qicns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qicns.pri"; sourceTree = ""; }; - EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_tcp.pri"; sourceTree = ""; }; - EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.5.1/mkspecs/common/mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/mac.conf"; sourceTree = ""; }; - EF5243ECB3132AF2796F09DF /* msmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = msmain.cpp; path = SourceFiles/_other/msmain.cpp; sourceTree = ""; }; - F0681BC551FC8A2B132FC646 /* qjp2 */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qjp2; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqjp2$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - F0A58515945747E36783CC21 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_inspector.pri"; sourceTree = ""; }; - F2453BA07315EB9F34F1CD57 /* qtiff */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtiff; path = "/usr/local/Qt-5.5.1/plugins/imageformats/libqtiff$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; }; - F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designer.pri"; sourceTree = ""; }; - F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.5.1/mkspecs/common/clang-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/common/clang-mac.conf"; sourceTree = ""; }; - F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qavfmediaplayer.pri"; sourceTree = ""; }; - F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_positioning.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_positioning.pri"; sourceTree = ""; }; - F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsvg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsvg.pri"; sourceTree = ""; }; - F8BC976260B6D624F23C32D6 /* genstyles.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = genstyles.cpp; path = SourceFiles/_other/genstyles.cpp; sourceTree = ""; }; - F9BEAA743A908603687DA204 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xmlpatterns_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xmlpatterns_private.pri"; sourceTree = ""; }; - FCC237CA5AD60B9BA4447615 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_help.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_help.pri"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D1C883685E82D5676953459A /* Link Binary With Libraries */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */, - 328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */, - 668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */, - F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */, - F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */, - 8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */, - E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */, - D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */, - F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */, - 8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */, - 1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */, - D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */, - BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */, - A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */, - 7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */, - 496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */, - 59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */, - FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */, - 7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */, - C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */, - A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */, - F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */, - 9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */, - 8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */, - 07D7954A1B5544B200DE9598 /* qtpcre in Link Binary With Libraries */, - B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */, - ); - name = "Link Binary With Libraries"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 25B08E2869634E9BCBA333A2 /* Generated Sources */ = { - isa = PBXGroup; - children = ( - D0B536A85E53302E4F66CE23 /* GeneratedFiles */, - ); - name = "Generated Sources"; - sourceTree = ""; - }; - 2EB56BE3C2D93CDAB0C52E67 /* Sources */ = { - isa = PBXGroup; - children = ( - 73F2E45FDEB381A085D37A49 /* SourceFiles */, - ); - name = Sources; - sourceTree = ""; - }; - 31562E815E3DF5B1A777D3EF /* _other */ = { - isa = PBXGroup; - children = ( - EF5243ECB3132AF2796F09DF /* msmain.cpp */, - F8BC976260B6D624F23C32D6 /* genstyles.cpp */, - 6FF81CB4A724CE1990CEE99A /* msmain.h */, - A35D133D7C0EFB42FA85D194 /* genstyles.h */, - ); - name = _other; - sourceTree = ""; - }; - 73F2E45FDEB381A085D37A49 /* SourceFiles */ = { - isa = PBXGroup; - children = ( - 31562E815E3DF5B1A777D3EF /* _other */, - ); - name = SourceFiles; - sourceTree = ""; - }; - 74B182DB50CB5611B5C1C297 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 10F719DFC6D0B05605ED1C16 /* MetaStyle.pro */, - 6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.5.1/mkspecs/qdevice.pri */, - 669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.5.1/mkspecs/common/shell-unix.conf */, - 0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.5.1/mkspecs/common/unix.conf */, - EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.5.1/mkspecs/common/mac.conf */, - 817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.5.1/mkspecs/common/macx.conf */, - 45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.5.1/mkspecs/common/gcc-base.conf */, - A9E30FA27827990C5F182223 /* /usr/local/Qt-5.5.1/mkspecs/common/gcc-base-mac.conf */, - 8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.5.1/mkspecs/common/clang.conf */, - F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.5.1/mkspecs/common/clang-mac.conf */, - D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.5.1/mkspecs/qconfig.pri */, - ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bluetooth.pri */, - 2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bluetooth_private.pri */, - BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_bootstrap_private.pri */, - CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_clucene_private.pri */, - 77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_concurrent.pri */, - 7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_concurrent_private.pri */, - 7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_core.pri */, - 5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_core_private.pri */, - 7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_declarative.pri */, - 89863CCAF1D29037AE95755D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_declarative_private.pri */, - F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designer.pri */, - 7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designer_private.pri */, - 69347C39E4D922E94D0860BF /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_designercomponents_private.pri */, - 360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_enginio.pri */, - 4C6C71914B1926119120DACD /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_enginio_private.pri */, - 23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_gui.pri */, - D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_gui_private.pri */, - FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_help.pri */, - D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_help_private.pri */, - A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_macextras.pri */, - 33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_macextras_private.pri */, - D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimedia.pri */, - E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimedia_private.pri */, - 28BD0D10214709D95B161E24 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimediawidgets.pri */, - D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_multimediawidgets_private.pri */, - 293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_network.pri */, - 382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_network_private.pri */, - 8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_nfc.pri */, - B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_nfc_private.pri */, - 5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_opengl.pri */, - E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_opengl_private.pri */, - E432DA897A5F027987342E8F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_openglextensions.pri */, - 5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_openglextensions_private.pri */, - 8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_platformsupport_private.pri */, - F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_positioning.pri */, - E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_positioning_private.pri */, - 6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_printsupport.pri */, - D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_printsupport_private.pri */, - B382B645B34234E451AE5D94 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qml.pri */, - 6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qml_private.pri */, - 4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmldevtools_private.pri */, - DF8188E30892A4654B984221 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmltest.pri */, - ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qmltest_private.pri */, - 5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */, - 16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quick.pri */, - 8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quick_private.pri */, - 82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickparticles_private.pri */, - D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickwidgets.pri */, - B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_quickwidgets_private.pri */, - CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_script.pri */, - C505A18319B9B63C63877858 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_script_private.pri */, - CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_scripttools.pri */, - A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_scripttools_private.pri */, - 85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sensors.pri */, - BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sensors_private.pri */, - BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_serialport.pri */, - 311004331A04F3D69C98643C /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_serialport_private.pri */, - 7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sql.pri */, - 075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_sql_private.pri */, - ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_svg.pri */, - 8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_svg_private.pri */, - DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_testlib.pri */, - 8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_testlib_private.pri */, - E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_uitools.pri */, - B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_uitools_private.pri */, - 8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_websockets.pri */, - 87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_websockets_private.pri */, - A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_widgets.pri */, - 8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_widgets_private.pri */, - AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xml.pri */, - E37365B4489B4918BEBB707D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xml_private.pri */, - 2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xmlpatterns.pri */, - F9BEAA743A908603687DA204 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_lib_xmlpatterns_private.pri */, - D5141F795670589C8CC41CBC /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */, - 1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qavfcamera.pri */, - F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */, - AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qcocoa.pri */, - EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */, - 111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qdds.pri */, - 3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qdeclarativeview.pri */, - 2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qgenericbearer.pri */, - EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qicns.pri */, - C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qico.pri */, - 45DB132B756499D4DF38430E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qjp2.pri */, - B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qminimal.pri */, - F0A58515945747E36783CC21 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */, - B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */, - EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */, - 3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */, - 946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qmng.pri */, - CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qoffscreen.pri */, - 9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qqt7engine.pri */, - B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsqlite.pri */, - F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsvg.pri */, - CFFBE05DB004895080314289 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qsvgicon.pri */, - 247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */, - 87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */, - 24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */, - 060A694B42A4555240009936 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtga.pri */, - BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtiff.pri */, - B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */, - 74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */, - C84546C18DCBB04166195DCF /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */, - AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */, - 8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */, - 892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */, - A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qtsensors_generic.pri */, - 346287C9E754E7C458153F03 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qwbmp.pri */, - B26239063A068F800A2C95F4 /* /usr/local/Qt-5.5.1/mkspecs/modules/qt_plugin_qwebp.pri */, - 63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.5.1/mkspecs/macx-clang/qmake.conf */, - 85061B1DA49D125991117950 /* /usr/local/Qt-5.5.1/mkspecs/macx-xcode/qmake.conf */, - AB745978DF0F41D1801ABDA6 /* .qmake.stash */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 801973D3334D0FCA849CF485 /* Debug */ = { - isa = PBXGroup; - children = ( - 861D2151FB56504EB72BDB6E /* moc_genstyles.cpp */, - ); - name = Debug; - sourceTree = ""; - }; - AF39DD055C3EF8226FBE929D /* Frameworks */ = { - isa = PBXGroup; - children = ( - 07D795491B5544B200DE9598 /* qtpcre */, - AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */, - DFD7912080BC557230093752 /* ApplicationServices.framework */, - 9742F24EE18EA44D52824F1E /* CoreServices.framework */, - 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */, - FCC237CA5AD60B9BA4447615 /* Foundation.framework */, - D4B32C2222F82AC56BADEB21 /* OpenGL.framework */, - 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */, - D53D8E6A188E05078A114294 /* qcocoa */, - 9DFF62A901D70814B8A323D4 /* Carbon.framework */, - A1A67BEAA744704B29168D39 /* IOKit.framework */, - DBF506D10449BFABD45B82DA /* Qt5PrintSupport */, - E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */, - 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */, - D3D1BE0BEA3AEE0551AD39AC /* qdds */, - 31120EDB269DFF13E1D49847 /* qicns */, - 8F500B5166907B6D9A7C3E3D /* qico */, - F0681BC551FC8A2B132FC646 /* qjp2 */, - 83D37373949868693FB7816D /* qmng */, - DCEFD9167C239650120B0145 /* qtga */, - F2453BA07315EB9F34F1CD57 /* qtiff */, - 8CF51323544B886B8F4A2232 /* qwbmp */, - ADC6308023253CEA51F86E21 /* qwebp */, - 04391BE7A8B9D811E255100A /* Qt5Gui */, - D6193B79CECC9DD0142D1200 /* qtharfbuzzng */, - 5A80A1907B6CFFB524C1E57D /* Qt5Core */, - ); - name = Frameworks; - sourceTree = ""; - }; - D0B536A85E53302E4F66CE23 /* GeneratedFiles */ = { - isa = PBXGroup; - children = ( - 801973D3334D0FCA849CF485 /* Debug */, - ); - name = GeneratedFiles; - sourceTree = ""; - }; - E8C543AB96796ECAA2E65C57 /* MetaStyle */ = { - isa = PBXGroup; - children = ( - 2EB56BE3C2D93CDAB0C52E67 /* Sources */, - 25B08E2869634E9BCBA333A2 /* Generated Sources */, - 74B182DB50CB5611B5C1C297 /* Supporting Files */, - AF39DD055C3EF8226FBE929D /* Frameworks */, - FE0A091FDBFB3E9C31B7A1BD /* Products */, - ); - name = MetaStyle; - sourceTree = ""; - }; - FE0A091FDBFB3E9C31B7A1BD /* Products */ = { - isa = PBXGroup; - children = ( - 2CBD32689B153445ED220FAE /* MetaStyle.app */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 4F0CF954E7A00B07204FA0B2 /* MetaStyle */ = { - isa = PBXNativeTarget; - buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaStyle" */; - buildPhases = ( - F7E50F631C51CD5B5DC0BC43 /* Compile Sources */, - D1C883685E82D5676953459A /* Link Binary With Libraries */, - ); - buildRules = ( - ); - dependencies = ( - CCEE60BFA9DEFDFF202AFD47 /* PBXTargetDependency */, - ); - name = MetaStyle; - productInstallPath = ../Mac/DebugStyle/; - productName = MetaStyle; - productReference = 2CBD32689B153445ED220FAE /* MetaStyle.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 6DB9C3763D02B1415CD9D565 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - }; - buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaStyle" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = E8C543AB96796ECAA2E65C57 /* MetaStyle */; - productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 4F0CF954E7A00B07204FA0B2 /* MetaStyle */, - 5E275BA59C8BA5B561E14CF4 /* Preprocess */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXShellScriptBuildPhase section */ - 07C3AF43194CCD0F0016CFF1 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "mkdir -p ./GeneratedFiles/Debug"; - }; - 7EF0942E79C014DCEC8976BC /* Qt Preprocessors */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - name = "Qt Preprocessors"; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "make -C . -f MetaStyle.xcodeproj/qt_preprocess.mak"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F7E50F631C51CD5B5DC0BC43 /* Compile Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 728CDDB7D7F2B9FF141651AD /* msmain.cpp in Compile Sources */, - 3D6772E35214B81E50791089 /* genstyles.cpp in Compile Sources */, - CBF24309A148222794F28401 /* moc_genstyles.cpp in Compile Sources */, - ); - name = "Compile Sources"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - CCEE60BFA9DEFDFF202AFD47 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5E275BA59C8BA5B561E14CF4 /* Preprocess */; - targetProxy = 0746FEAC193D006900F5C3FD /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 339EE1B2CC4FC24589A0EA95 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)"; - COPY_PHASE_STRIP = YES; - DYLIB_COMPATIBILITY_VERSION = 1.0; - DYLIB_CURRENT_VERSION = 1.0.0; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - ../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui, - ../../Libraries/QtStatic/qtbase/include/QtCore/5.5.1/QtCore, - ../../Libraries/QtStatic/qtbase/include, - "/usr/local/Qt-5.5.1/include", - "/usr/local/Qt-5.5.1/include/QtGui", - "/usr/local/Qt-5.5.1/include/QtCore", - GeneratedFiles/Debug, - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers, - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers, - "/usr/local/Qt-5.5.1/mkspecs/macx-clang", - ); - INFOPLIST_FILE = Style.plist; - INSTALL_DIR = ../Mac/ReleaseStyle/; - LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"; - LIBRARY_SEARCH_PATHS = ( - /System/Library/Frameworks/, - "/usr/local/Qt-5.5.1/lib", - "/usr/local/Qt-5.5.1/plugins/platforms", - "/usr/local/Qt-5.5.1/plugins/imageformats", - ); - MACOSX_DEPLOYMENT_TARGET = 10.8; - OBJROOT = ./../Mac/ReleaseIntermediateStyle; - OTHER_CFLAGS = ( - "-pipe", - "-g", - "-Wall", - "-W", - "-fPIE", - "-D_DEBUG", - "-DQT_GUI_LIB", - "-DQT_CORE_LIB", - ); - OTHER_CPLUSPLUSFLAGS = ( - "-pipe", - "-g", - "-std=c++11", - "-stdlib=libc++", - "-Wall", - "-W", - "-fPIE", - "-D_DEBUG", - "-DQT_GUI_LIB", - "-DQT_CORE_LIB", - ); - OTHER_LDFLAGS = ( - "-headerpad_max_install_names", - "-stdlib=libc++", - "-L/usr/local/Qt-5.5.1/lib", - "-L/usr/local/Qt-5.5.1/plugins/platforms", - "-lcups", - "-L/usr/local/Qt-5.5.1/plugins/imageformats", - "-lz", - "-lm", - ); - PRODUCT_NAME = MetaStyle; - QT_LIBRARY_SUFFIX = ""; - SDKROOT = macosx; - SYMROOT = ./../Mac; - }; - name = Release; - }; - 3AA6C32AC930069E80220CF1 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DYLIB_COMPATIBILITY_VERSION = 1.0; - DYLIB_CURRENT_VERSION = 1.0.0; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - ../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui, - ../../Libraries/QtStatic/qtbase/include/QtCore/5.5.1/QtCore, - ../../Libraries/QtStatic/qtbase/include, - "/usr/local/Qt-5.5.1/include", - "/usr/local/Qt-5.5.1/include/QtGui", - "/usr/local/Qt-5.5.1/include/QtCore", - GeneratedFiles/Debug, - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers, - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers, - "/usr/local/Qt-5.5.1/mkspecs/macx-clang", - ); - INFOPLIST_FILE = Style.plist; - INSTALL_DIR = ../Mac/DebugStyle/; - LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"; - LIBRARY_SEARCH_PATHS = ( - /System/Library/Frameworks/, - "/usr/local/Qt-5.5.1/lib", - "/usr/local/Qt-5.5.1/plugins/platforms", - "/usr/local/Qt-5.5.1/plugins/imageformats", - ); - MACOSX_DEPLOYMENT_TARGET = 10.8; - OBJROOT = ./../Mac/DebugIntermediateStyle; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-pipe", - "-g", - "-Wall", - "-W", - "-fPIE", - "-D_DEBUG", - "-DQT_GUI_LIB", - "-DQT_CORE_LIB", - ); - OTHER_CPLUSPLUSFLAGS = ( - "-pipe", - "-g", - "-std=c++11", - "-stdlib=libc++", - "-Wall", - "-W", - "-fPIE", - "-D_DEBUG", - "-DQT_GUI_LIB", - "-DQT_CORE_LIB", - ); - OTHER_LDFLAGS = ( - "-headerpad_max_install_names", - "-stdlib=libc++", - "-L/usr/local/Qt-5.5.1/lib", - "-L/usr/local/Qt-5.5.1/plugins/platforms", - "-lcups", - "-L/usr/local/Qt-5.5.1/plugins/imageformats", - "-lz", - "-lm", - ); - PRODUCT_NAME = MetaStyle; - QT_LIBRARY_SUFFIX = _debug; - SDKROOT = macosx; - SYMROOT = ./../Mac; - }; - name = Debug; - }; - 6666AA5E688052234F6758D8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - HEADER_SEARCH_PATHS = ( - ./../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui, - ./../../Libraries/QtStatic/qtbase/include/QtCore/5.5.1/QtCore, - ./../../Libraries/QtStatic/qtbase/include, - "/usr/local/Qt-5.5.1/include", - "/usr/local/Qt-5.5.1/include/QtGui", - "/usr/local/Qt-5.5.1/include/QtCore", - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers, - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers, - "/usr/local/Qt-5.5.1/mkspecs/macx-clang", - ); - INSTALL_DIR = ./../Mac/ReleaseStyle/; - PRODUCT_BUNDLE_IDENTIFIER = "com.tdesktop.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = MetaStyle; - QT_LIBRARY_SUFFIX = ""; - SDKROOT = macosx; - }; - name = Release; - }; - 77418F46922677BB04ED38DD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = ( - ./../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui, - ./../../Libraries/QtStatic/qtbase/include/QtCore/5.5.1/QtCore, - ./../../Libraries/QtStatic/qtbase/include, - "/usr/local/Qt-5.5.1/include", - "/usr/local/Qt-5.5.1/include/QtGui", - "/usr/local/Qt-5.5.1/include/QtCore", - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers, - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers, - "/usr/local/Qt-5.5.1/mkspecs/macx-clang", - ); - INSTALL_DIR = ./../Mac/DebugStyle/; - PRODUCT_BUNDLE_IDENTIFIER = "com.tdesktop.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = MetaStyle; - QT_LIBRARY_SUFFIX = _debug; - SDKROOT = macosx; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaStyle" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 77418F46922677BB04ED38DD /* Debug */, - 6666AA5E688052234F6758D8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaStyle" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3AA6C32AC930069E80220CF1 /* Debug */, - 339EE1B2CC4FC24589A0EA95 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 6DB9C3763D02B1415CD9D565 /* Project object */; -} diff --git a/Telegram/MetaStyle.xcodeproj/qt_preprocess.mak b/Telegram/MetaStyle.xcodeproj/qt_preprocess.mak deleted file mode 100644 index c1bc48d11..000000000 --- a/Telegram/MetaStyle.xcodeproj/qt_preprocess.mak +++ /dev/null @@ -1,67 +0,0 @@ -############################################################################# -# Makefile for building: ../Mac/DebugStyle/MetaStyle.app/Contents/MacOS/MetaStyle -# Generated by qmake (3.0) (Qt 5.5.1) -# Project: MetaStyle.pro -# Template: app -# Command: /usr/local/Qt-5.5.1/bin/qmake -spec macx-xcode -o MetaStyle.xcodeproj/project.pbxproj MetaStyle.pro -############################################################################# - -MAKEFILE = project.pbxproj - -MOC = /usr/local/Qt-5.5.1/bin/moc -UIC = -LEX = flex -LEXFLAGS = -YACC = yacc -YACCFLAGS = -d -DEFINES = -D_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -INCPATH = -I/usr/local/Qt-5.5.1/mkspecs/macx-clang -I. -I../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui -I../../Libraries/QtStatic/qtbase/include/QtCore/5.5.1/QtCore -I../../Libraries/QtStatic/qtbase/include -I/usr/local/Qt-5.5.1/include -I/usr/local/Qt-5.5.1/include/QtGui -I/usr/local/Qt-5.5.1/include/QtCore -IGeneratedFiles/Debug -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers -DEL_FILE = rm -f -MOVE = mv -f - -IMAGES = -PARSERS = -preprocess: $(PARSERS) compilers -clean preprocess_clean: parser_clean compiler_clean - -parser_clean: -mocclean: compiler_moc_header_clean compiler_moc_source_clean - -mocables: compiler_moc_header_make_all compiler_moc_source_make_all - -check: first - -compilers: GeneratedFiles/Debug/moc_genstyles.cpp -compiler_objective_c_make_all: -compiler_objective_c_clean: -compiler_rcc_make_all: -compiler_rcc_clean: -compiler_moc_header_make_all: GeneratedFiles/Debug/moc_genstyles.cpp -compiler_moc_header_clean: - -$(DEL_FILE) GeneratedFiles/Debug/moc_genstyles.cpp -GeneratedFiles/Debug/moc_genstyles.cpp: ../../Libraries/QtStatic/qtbase/include/QtCore/QMap \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QVector \ - ../../Libraries/QtStatic/qtbase/include/QtGui/QBitmap \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QBuffer \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QFileInfo \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QFile \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QTextStream \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QString \ - ../../Libraries/QtStatic/qtbase/include/QtCore/QCoreApplication \ - ../../Libraries/QtStatic/qtbase/include/QtGui/QGuiApplication \ - ../../Libraries/QtStatic/qtbase/include/QtGui/QPainter \ - SourceFiles/_other/genstyles.h - /usr/local/Qt-5.5.1/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -I/usr/local/Qt-5.5.1/mkspecs/macx-clang -I. -I/usr/local/Qt-5.5.1/include/QtGui/5.5.1/QtGui -I/usr/local/Qt-5.5.1/include/QtCore/5.5.1/QtCore -I/usr/local/Qt-5.5.1/include -I/usr/local/Qt-5.5.1/include/QtGui -I/usr/local/Qt-5.5.1/include/QtCore -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/backward -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.1/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include SourceFiles/_other/genstyles.h -o GeneratedFiles/Debug/moc_genstyles.cpp - -compiler_moc_source_make_all: -compiler_moc_source_clean: -compiler_rez_source_make_all: -compiler_rez_source_clean: -compiler_yacc_decl_make_all: -compiler_yacc_decl_clean: -compiler_yacc_impl_make_all: -compiler_yacc_impl_clean: -compiler_lex_make_all: -compiler_lex_clean: -compiler_clean: compiler_moc_header_clean - diff --git a/Telegram/SourceFiles/_other/genstyles.cpp b/Telegram/SourceFiles/_other/genstyles.cpp deleted file mode 100644 index 1a16cdd62..000000000 --- a/Telegram/SourceFiles/_other/genstyles.cpp +++ /dev/null @@ -1,2015 +0,0 @@ -/* -This file is part of Telegram Desktop, -the official desktop version of Telegram messaging app, see https://telegram.org - -Telegram Desktop is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -It is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -In addition, as a special exception, the copyright holders give permission -to link the code of portions of this program with the OpenSSL library. - -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org -*/ -#include "genstyles.h" - -#include -#include - -#ifdef Q_OS_WIN -Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) -#endif - -#ifdef Q_OS_MAC -Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin) -Q_IMPORT_PLUGIN(QDDSPlugin) -Q_IMPORT_PLUGIN(QICNSPlugin) -Q_IMPORT_PLUGIN(QICOPlugin) -Q_IMPORT_PLUGIN(QJp2Plugin) -Q_IMPORT_PLUGIN(QMngPlugin) -Q_IMPORT_PLUGIN(QTgaPlugin) -Q_IMPORT_PLUGIN(QTiffPlugin) -Q_IMPORT_PLUGIN(QWbmpPlugin) -Q_IMPORT_PLUGIN(QWebpPlugin) -#endif - -enum ScalarType { - scNumber, - scString, - scColor, - scPoint, - scRect, - scSprite, - scSize, - scTransition, - scCursor, - scAlign, - scMargins, - scFont, - - scTypesCount, -}; - -string scalarTypeNames[] = { - "number", - "string", - "color", - "point", - "rect", - "sprite", - "size", - "transition", - "cursor", - "align", - "margins", - "font", -}; - -string outputTypeNames[] = { - "number", - "string", - "color", - "point", - "rect", - "sprite", - "size", - "transition", - "cursor", - "align", - "margins", - "font", -}; - -enum ClassGenTokenType { - csName, // [a-zA-Z_][a-zA-Z0-9_]* - csDelimeter, // ':' - csFieldFinish, // ';' - csClassStart, // '{' - csClassFinish, // '}' -}; - -bool skipWhitespaces(const char *&from, const char *end) { - while (from < end && (*from == ' ' || *from == '\n' || *from == '\t' || *from == '\r')) { - ++from; - } - return (from < end); -} - -bool skipComment(const char *&from, const char *end) { - if (from >= end) return false; - if (*from == '/') { - if (from + 1 >= end) return true; - if (*(from + 1) == '*') { - from += 2; - while (from + 1 < end && (*from != '*' || *(from + 1) != '/')) { - ++from; - } - from += 2; - return (from < end); - } else if (*(from + 1) == '/') { - from += 2; - while (from < end && *from != '\n' && *from != '\r') { - ++from; - } - ++from; - return (from < end); - } else { - return true; - } - } - return true; -} - -void readName(const char *&from, const char *end, string &token) { - if (from >= end) throw Exception("Unexpected end of file!"); - - const char *start = from; - char ch = *from; - if (!((ch >= 'a' && ch <= 'z') || ((ch >= 'A') && (ch <= 'Z')))) { - throw Exception("Unknown error :("); - } - while (++from < end) { - ch = *from; - if (!((ch >= 'a' && ch <= 'z') || ((ch >= 'A') && (ch <= 'Z')) || ((ch >= '0') && (ch <= '9')) || ch == '_')) break; - } - token = string(start, from); -} - -void readString(const char *&from, const char *end, string &token) { - if (from + 1 >= end) throw Exception("Unexpected end of file!"); - - token = ""; - char border = *from; - if (border != '"' && border != '\'') { - throw Exception("Unknown error :("); - } - - bool spec = false; - for (++from; spec || (*from != border); ) { - if (*from == '\\') { - spec = true; - } else if (spec) { - if (*from == 'n') { - token += '\n'; - } else if (*from == 't') { - token += '\t'; - } else if (*from == '\\' || *from == '"' || *from == '\'') { - token += *from; - } else { - throw Exception(QString("Unexpected escaped character in string: %1").arg(*from)); - } - spec = false; - } else { - token += *from; - } - if (++from >= end) throw Exception("Unexpected end of file!"); - } - ++from; -} - -char hexChar(char ch) { - if (ch >= 'a' && ch <= 'f') { - return ch + ('A' - 'a'); - } - return ch; -} - -void readColor(const char *&from, const char *end, string &token) { - if (from + 3 >= end) throw Exception("Unexpected end of file!"); - - token.resize(8); - - int len = 0; - for (const char *ch = from + 1; ch < end; ++ch) { - if ((*ch >= '0' && *ch <= '9') || (*ch >= 'A' && *ch <= 'F') || (*ch >= 'a' && *ch <= 'f')) { - ++len; - } else { - break; - } - } - if (len != 3 && len != 4 && len != 6 && len != 8) { - throw Exception("Bad color token"); - } - if (len == 3 || len == 4) { - token[0] = token[1] = hexChar(*(++from)); - token[2] = token[3] = hexChar(*(++from)); - token[4] = token[5] = hexChar(*(++from)); - if (len == 3) { - token[6] = token[7] = 'F'; - } else { - token[6] = token[7] = hexChar(*(++from)); - } - } else { - token[0] = hexChar(*(++from)); - token[1] = hexChar(*(++from)); - token[2] = hexChar(*(++from)); - token[3] = hexChar(*(++from)); - token[4] = hexChar(*(++from)); - token[5] = hexChar(*(++from)); - if (len == 6) { - token[6] = token[7] = 'F'; - } else { - token[6] = hexChar(*(++from)); - token[7] = hexChar(*(++from)); - } - } - ++from; -} - -void readNumber(const char *&from, const char *end, string &token) { - if (from >= end) throw Exception("Unexpected end of file!"); - - bool neg = false; - if (*from == '-') { - neg = true; - if (++from >= end) throw Exception("Unexpected end of file!"); - } - - if (*from == '0' && from < end && *(from + 1) >= '0' && *(from + 1) <= '9') throw Exception("Bad number token!"); - - token = neg ? "-" : ""; - for (bool wasDot = false; from < end; ++from) { - if (*from == '.') { - if (wasDot) throw Exception("Unexpected dot in number!"); - wasDot = true; - } else if (*from < '0' || *from > '9') { - break; - } - token += *from; - } -} - -void readClassGenToken(const char *&from, const char *end, ClassGenTokenType &tokenType, string &token) { - const char *start; - do { - start = from; - if (!skipWhitespaces(from, end)) throw Exception("Unexpected end of file!"); - if (!skipComment(from, end)) throw Exception("Unexpected end of comment!"); - } while (start != from); - - if ((*from >= 'a' && *from <= 'z') || ((*from >= 'A') && (*from <= 'Z'))) { - tokenType = csName; - return readName(from, end, token); - } else if (*from == ':') { - tokenType = csDelimeter; - } else if (*from == ';') { - tokenType = csFieldFinish; - } else if (*from == '{') { - tokenType = csClassStart; - } else if (*from == '}') { - tokenType = csClassFinish; - } else { - throw Exception("Could not parse token!"); - } - ++from; - return; -} - -typedef QMap FieldTypesMap; -struct ClassData { - string name; - FieldTypesMap fields; -}; - -typedef QMap Classes; -Classes classes; - -typedef QMap ByName; - -bool genClasses(const QString &classes_in, const QString &classes_out) { - QFile f(classes_in); - if (!f.open(QIODevice::ReadOnly)) { - cout << "Could not open style classes input file '" << classes_in.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - - QByteArray blob = f.readAll(); - const char *text = blob.constData(), *end = blob.constData() + blob.size(); - ByName byName; - QVector byIndex; - string token; - ClassGenTokenType type; - try { - while (true) { - try { - readClassGenToken(text, end, type, token); - } catch (exception &e) { - if (e.what() != string("Unexpected end of file!")) { - throw; - } - break; - } - if (type != csName) { - throw Exception(QString("Unexpected token, type %1: %2").arg(type).arg(token.c_str())); - } - - byIndex.push_back(ClassData()); - ClassData &cls(byIndex.back()); - cls.name = token; - readClassGenToken(text, end, type, token); - if (type == csDelimeter) { - readClassGenToken(text, end, type, token); - if (type != csName) throw Exception(QString("Unexpected token after '%1:', type %2").arg(cls.name.c_str()).arg(type)); - - QMap::const_iterator i = byName.constFind(token); - if (i == byName.cend()) throw Exception(QString("Parent class '%1' not found for class '%2'").arg(token.c_str()).arg(cls.name.c_str())); - cls.fields = byIndex[i.value()].fields; - readClassGenToken(text, end, type, token); - } - if (type != csClassStart) throw Exception(QString("Unexpected token after '%1:%2', type %3").arg(cls.name.c_str()).arg(token.c_str()).arg(type)); - - do { - string fname, ftype; - readClassGenToken(text, end, type, fname); - if (type == csClassFinish) { - byName.insert(cls.name, byIndex.size() - 1); - break; - } - if (type != csName) throw Exception(QString("Unexpected token %1 while reading class '%2'").arg(type).arg(cls.name.c_str())); - readClassGenToken(text, end, type, token); - if (type != csDelimeter) throw Exception(QString("Unexpected token %1 while reading field '%2' in class '%3'").arg(type).arg(fname.c_str()).arg(cls.name.c_str())); - readClassGenToken(text, end, type, ftype); - if (type != csName) throw Exception(QString("Unexpected token %1 while reading field '%2' in class '%3'").arg(type).arg(fname.c_str()).arg(cls.name.c_str())); - readClassGenToken(text, end, type, token); - if (type != csFieldFinish) throw Exception(QString("Unexpected token %1 while reading field '%2:%3' in class '%4'").arg(type).arg(fname.c_str()).arg(ftype.c_str()).arg(cls.name.c_str())); - - ScalarType typeIndex = scTypesCount; - for (int t = 0; t < scTypesCount; ++t) { - if (ftype == scalarTypeNames[t]) { - typeIndex = ScalarType(t); - break; - } - } - if (typeIndex == scTypesCount) throw Exception(QString("Unknown field type %1 while reading field '%2' in class '%3'").arg(ftype.c_str()).arg(fname.c_str()).arg(cls.name.c_str())); - FieldTypesMap::const_iterator alr = cls.fields.find(fname); - if (alr != cls.fields.cend()) throw Exception(QString("Redeclaration of field '%1' in class '%2'").arg(fname.c_str()).arg(cls.name.c_str())); - cls.fields.insert(fname, typeIndex); - } while(true); - } - - QByteArray outText; - { - QTextStream tout(&outText); - tout << "\ -/*\n\ -Created from \'/Resources/style_classes.txt\' by \'/MetaStyle\' project\n\ -\n\ -WARNING! All changes made in this file will be lost!\n\ -\n\ -This file is part of Telegram Desktop,\n\ -the official desktop version of Telegram messaging app, see https://telegram.org\n\ -\n\ -Telegram Desktop is free software: you can redistribute it and/or modify\n\ -it under the terms of the GNU General Public License as published by\n\ -the Free Software Foundation, either version 3 of the License, or\n\ -(at your option) any later version.\n\ -\n\ -It is distributed in the hope that it will be useful,\n\ -but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ -GNU General Public License for more details.\n\ -\n\ -In addition, as a special exception, the copyright holders give permission\n\ -to link the code of portions of this program with the OpenSSL library.\n\ -\n\ -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\ -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org\n\ -*/\n"; - tout << "#pragma once\n\n#include \"ui/style_core.h\"\n\nnamespace style {\n"; - for (int i = 0, l = byIndex.size(); i < l; ++i) { - ClassData &cls(byIndex[i]); - classes.insert(cls.name, cls); - tout << "\n\tclass " << cls.name.c_str() << " {\n\tpublic:\n\t\t" << cls.name.c_str() << "("; - for (FieldTypesMap::const_iterator j = cls.fields.cbegin(), e = cls.fields.cend(); j != e;) { - tout << "const style::" << outputTypeNames[j.value()].c_str() << " &_" << j.key().c_str(); - if (++j != e) { - tout << ", "; - } - } - tout << ", Qt::Initialization = Qt::Uninitialized)"; - if (!cls.fields.isEmpty()) { - tout << " : "; - } - for (FieldTypesMap::const_iterator j = cls.fields.cbegin(), e = cls.fields.cend(); j != e;) { - tout << j.key().c_str() << "(_" << j.key().c_str() << ")"; - if (++j != e) { - tout << ", "; - } - } - tout << " {\n\t\t}\n\n"; - for (FieldTypesMap::const_iterator j = cls.fields.cbegin(), e = cls.fields.cend(); j != e;) { - tout << "\t\tstyle::" << outputTypeNames[j.value()].c_str() << " " << j.key().c_str() << ";\n"; - ++j; - } - tout << "\t};\n"; - } - tout << "\n};\n"; - } - QFile out(classes_out); - if (out.open(QIODevice::ReadOnly)) { - QByteArray wasOut = out.readAll(); - if (wasOut.size() == outText.size()) { - if (!memcmp(wasOut.constData(), outText.constData(), outText.size())) { - return true; - } - } - out.close(); - } - cout << "Style classes compiled, writing " << byIndex.size() << " classes.\n"; - if (!out.open(QIODevice::WriteOnly)) throw Exception("Could not open style_classes.h for writing!"); - if (out.write(outText) != outText.size()) throw Exception("Could not open style_classes.h for writing!"); - } catch (exception &e) { - cout << e.what() << "\n"; - QCoreApplication::exit(1); - return false; - } - return true; -} - -enum StyleGenTokenType { - stName, // [a-zA-Z_][a-zA-Z0-9_]* - stDelimeter, // ':' - stFieldFinish, // ';' - stObjectStart, // '{' - stObjectFinish, // '}' - stConsStart, // '(' - stConsFinish, // ')' - stComma, // ',' - stVariant, // '/' - stString, // "text" or 'text' - stColor, // #rgb or #rrggbb - stNumber, // -?([1-9][0-9]+(\.[0-9]+)?|\.[0-9]+) -}; - -static const int variants[] = { 0, 2, 3, 4 }, variantsCount = sizeof(variants) / sizeof(variants[0]); -static const char *variantNames[] = { "dbisOne", "dbisOneAndQuarter", "dbisOneAndHalf", "dbisTwo" }; - -static const char *variantPostfixes[] = { "", "_125x", "_150x", "_200x" }; -QImage *variantSprites = 0; -int *spriteWidths = 0; -QImage *variantGrids = 0; - -void readStyleGenToken(const char *&from, const char *end, StyleGenTokenType &tokenType, string &token) { - const char *start; - do { - start = from; - if (!skipWhitespaces(from, end)) throw Exception("Unexpected end of file!"); - if (!skipComment(from, end)) throw Exception("Unexpected end of comment!"); - } while (start != from); - - if ((*from >= 'a' && *from <= 'z') || ((*from >= 'A') && (*from <= 'Z'))) { - tokenType = stName; - return readName(from, end, token); - } else if (*from == '"' || *from == '\'') { - tokenType = stString; - return readString(from, end, token); - } else if (*from == '#') { - tokenType = stColor; - return readColor(from, end, token); - } else if (*from == '.' || (*from >= '0' && *from <= '9') || *from == '-') { - tokenType = stNumber; - return readNumber(from, end, token); - } else if (*from == ':') { - tokenType = stDelimeter; - } else if (*from == ';') { - tokenType = stFieldFinish; - } else if (*from == '{') { - tokenType = stObjectStart; - } else if (*from == '}') { - tokenType = stObjectFinish; - } else if (*from == '(') { - tokenType = stConsStart; - } else if (*from == ')') { - tokenType = stConsFinish; - } else if (*from == ',') { - tokenType = stComma; - } else if (*from == '/') { - tokenType = stVariant; - } else { - throw Exception("Could not parse token!"); - } - ++from; - return; -} - -bool readPxAfterNumber(const char *&from, const char *end) { - if (from + 2 <= end && *from == 'p' && *(from + 1) == 'x') { - from += 2; - return true; - } - return false; -} - -typedef QMap ScalarValue; -typedef QPair ScalarData; -typedef QPair Scalar; -typedef QMap Fields; -typedef QPair ObjectData; -typedef QPair Object; -typedef QVector Objects; -typedef QVector Scalars; - -string findScalarVariant(const ScalarValue &value, int variant) { - ScalarValue::const_iterator i = value.constFind(variant); - if (i != value.cend()) return i.value(); - - return value[0]; - //string result; - //for (ScalarValue::const_iterator i = value.cbegin(), e = value.cend(); i != e; ++i) { - // if (i.key() > variant) { - // break; - // } - // result = i.value(); - //} - //return result; -} - -Objects objects; -Scalars scalars; - -ByName objectsMap; -ByName scalarsMap; - -ScalarValue fillPrepareResult(int variant, const string &result) { - ScalarValue r; - r[variant] = result; - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = result; - } - } - return r; -} - -int adjustPx(int variant, int number, bool ispx) { - if (!ispx || !variant) return number; - - switch (variant) { - case 2: return qRound(number * 1.25 + (number > 0 ? -0.01 : 0.01)); - case 3: return qRound(number * 1.5 + (number > 0 ? -0.01 : 0.01)); - case 4: return number * 2; - } - return number; -} - -string adjustPx(int variant, const string &number, bool ispx) { - if (!variant || !ispx) return number; - return QString::number(adjustPx(variant, QString(number.c_str()).toInt(), ispx)).toUtf8().constData(); -} - -ScalarValue prepareString(int variant, const string &token) { - string result; - result.reserve(token.length() * 2); - result += "(qsl(\""; - for (quint64 i = 0, l = token.length(); i < l; ++i) { - if (token[i] == '\n') { - result += "\\n"; - } else if (token[i] == '\r') { - result += "\\r"; - } else if (token[i] == '\t') { - result += "\\t"; - } else { - if (token[i] == '\\' || token[i] == '"') { - result += '\\'; - } - result += token[i]; - } - } - result += "\"))"; - return fillPrepareResult(variant, result); - -} - -int hexDec(char a, char b) { - int da = (a >= '0' && a <= '9') ? (a - '0') : (10 + a - 'A'); - int db = (b >= '0' && b <= '9') ? (b - '0') : (10 + b - 'A'); - return da * 16 + db; -} - -typedef QMap > Named; -QMap named; - -struct Color { - string color; -}; - -typedef QMap Colors; -QMap colors; - -ScalarValue prepareColor(int variant, const string &name, const string &token) { - QString result; - result.reserve(20); - - int r = hexDec(token[0], token[1]), g = hexDec(token[2], token[3]), b = hexDec(token[4], token[5]), a = hexDec(token[6], token[7]); - - Color c; - c.color = QString("%1, %2, %3, %4").arg(r).arg(g).arg(b).arg(a).toUtf8().constData(); - colors[variant][name] = c; - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - colors[variants[i]][name] = c; - } - } - return fillPrepareResult(variant, "(Qt::Uninitialized)"); -} - -ScalarValue prepareNumber(int variant, const string &token, const char *&text, const char *end) { - bool ispx = readPxAfterNumber(text, end); - ScalarValue r; - r[variant] = '(' + token + ')'; - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = '(' + adjustPx(variants[i], token, ispx) + ')'; - } - } - return r; -} - -ScalarValue prepareColorRGB(int variant, const string &name, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - string r = token; - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - string g = token; - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - string b = token; - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading rgb() cons!").arg(type)); - - Color c; - c.color = QString("%1, %2, %3, 255").arg(r.c_str()).arg(g.c_str()).arg(b.c_str()).toUtf8().constData(); - colors[variant][name] = c; - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - colors[variants[i]][name] = c; - } - } - return fillPrepareResult(variant, "(Qt::Uninitialized)"); -} - -ScalarValue prepareColorRGBA(int variant, const string &name, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - string r = token; - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - string g = token; - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - string b = token; - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - string a = token; - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading rgba() cons!").arg(type)); - - Color c; - c.color = QString("%1, %2, %3, %4").arg(r.c_str()).arg(g.c_str()).arg(b.c_str()).arg(a.c_str()).toUtf8().constData(); - colors[variant][name] = c; - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - colors[variants[i]][name] = c; - } - } - return fillPrepareResult(variant, "(Qt::Uninitialized)"); -} - -ScalarValue prepareRect(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - string x = token; - bool xpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - string y = token; - bool ypx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - string w = token; - bool wpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - string h = token; - bool hpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading rect() cons!").arg(type)); - - ScalarValue r; - r[variant] = QString("(%1, %2, %3, %4)").arg(x.c_str()).arg(y.c_str()).arg(w.c_str()).arg(h.c_str()).toUtf8().constData(); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = QString("(%1, %2, %3, %4)").arg(adjustPx(variants[i], x, xpx).c_str()).arg(adjustPx(variants[i], y, ypx).c_str()).arg(adjustPx(variants[i], w, wpx).c_str()).arg(adjustPx(variants[i], h, hpx).c_str()).toUtf8().constData(); - } - } - return r; -} - -typedef QVector > SpriteRects; -SpriteRects sprites; - -ScalarValue prepareSprite(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - if (variant) throw Exception(QString("Unexpected variant in sprite rectangle!")); - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - string x = token; - if (!readPxAfterNumber(text, end)) throw Exception(QString("All number in sprite() cons must be in px!")); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - string y = token; - if (!readPxAfterNumber(text, end)) throw Exception(QString("All number in sprite() cons must be in px!")); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - string w = token; - if (!readPxAfterNumber(text, end)) throw Exception(QString("All number in sprite() cons must be in px!")); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - string h = token; - if (!readPxAfterNumber(text, end)) throw Exception(QString("All number in sprite() cons must be in px!")); - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading sprite() cons!").arg(type)); - - ScalarValue r; - r[variant] = QString("(%1, %2, %3, %4)").arg(x.c_str()).arg(y.c_str()).arg(w.c_str()).arg(h.c_str()).toUtf8().constData(); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = QString("(%1, %2, %3, %4)").arg(adjustPx(variants[i], x, true).c_str()).arg(adjustPx(variants[i], y, true).c_str()).arg(adjustPx(variants[i], w, true).c_str()).arg(adjustPx(variants[i], h, true).c_str()).toUtf8().constData(); - } - } - - bool found = false; - QRect sprite(QString(x.c_str()).toInt(), QString(y.c_str()).toInt(), QString(w.c_str()).toInt(), QString(h.c_str()).toInt()); - for (SpriteRects::const_iterator i = sprites.cbegin(), e = sprites.cend(); i != e; ++i) { - if (i->first == sprite) { - found = true; - break; - } - if (i->first.intersects(sprite)) { - cout << QString("Sprites intersection, %1 intersects with %2").arg(i->second).arg(r[variant].c_str()).toUtf8().constData() << "\n"; -// throw Exception(QString("Sprites intersection, %1 intersects with %2").arg(i->second).arg(r[variant].c_str())); - } - } - if (!found) { - sprites.push_back(QPair(sprite, QString(r[variant].c_str()))); - - if (sprite.x() < 0 || sprite.y() < 0 || sprite.x() + sprite.width() > variantSprites[0].width() || sprite.y() + sprite.height() > variantSprites[0].height()) { - throw Exception(QString("Bad sprite size %1").arg(r[variant].c_str())); - } - - int varLast = variants[variantsCount - 1]; - QImage lastCopy = variantSprites[variantsCount - 1].copy(adjustPx(varLast, sprite.x(), true), adjustPx(varLast, sprite.y(), true), adjustPx(varLast, sprite.width(), true), adjustPx(varLast, sprite.height(), true)); - for (int i = 1; i < variantsCount - 1; ++i) { - QPainter p(&variantSprites[i]); - p.drawImage(QPoint(adjustPx(variants[i], sprite.x(), true), adjustPx(variants[i], sprite.y(), true)), lastCopy.scaled(adjustPx(variants[i], sprite.width(), true), adjustPx(variants[i], sprite.height(), true), Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - } - - for (int i = 0; i < variantsCount; ++i) { - QPainter p(&variantGrids[i]); - p.setBrush(Qt::NoBrush); - p.setPen(QColor(0, 255, 255)); - p.drawRect(QRect(adjustPx(variants[i], sprite.x(), true), adjustPx(variants[i], sprite.y(), true), adjustPx(variants[i], sprite.width(), true) - 1, adjustPx(variants[i], sprite.height(), true) - 1)); - } - } - - return r; -} - -ScalarValue preparePoint(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading point() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading point() cons!").arg(type)); - string x = token; - bool xpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading point() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading point() cons!").arg(type)); - string y = token; - bool ypx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading point() cons!").arg(type)); - - ScalarValue r; - r[variant] = QString("(%1, %2)").arg(x.c_str()).arg(y.c_str()).toUtf8().constData(); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = QString("(%1, %2)").arg(adjustPx(variants[i], x, xpx).c_str()).arg(adjustPx(variants[i], y, ypx).c_str()).toUtf8().constData(); - } - } - return r; -} - -ScalarValue prepareSize(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading size() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading size() cons!").arg(type)); - string x = token; - bool xpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading size() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading size() cons!").arg(type)); - string y = token; - bool ypx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading size() cons!").arg(type)); - - ScalarValue r; - r[variant] = QString("(%1, %2)").arg(x.c_str()).arg(y.c_str()).toUtf8().constData(); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = QString("(%1, %2)").arg(adjustPx(variants[i], x, xpx).c_str()).arg(adjustPx(variants[i], y, ypx).c_str()).toUtf8().constData(); - } - } - return r; -} - -ScalarValue prepareTransition(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading transition() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stName) throw Exception(QString("Unexpected token %1 while reading transition() cons!").arg(type)); - string func = token; - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading transition() cons!").arg(type)); - - return fillPrepareResult(variant, QString("(anim::%1)").arg(func.c_str()).toUtf8().constData()); -} - -ScalarValue prepareCursor(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading cursor() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stName) throw Exception(QString("Unexpected token %1 while reading cursor() cons!").arg(type)); - string func = token; - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading cursor() cons!").arg(type)); - - return fillPrepareResult(variant, QString("(style::cur_%1)").arg(func.c_str()).toUtf8().constData()); -} - -ScalarValue prepareAlign(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading align() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stName) throw Exception(QString("Unexpected token %1 while reading align() cons!").arg(type)); - string func = token; - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading align() cons!").arg(type)); - - return fillPrepareResult(variant, QString("(style::al_%1)").arg(func.c_str()).toUtf8().constData()); -} - -ScalarValue prepareMargins(int variant, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - string x = token; - bool xpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - string y = token; - bool ypx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - string w = token; - bool wpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stComma) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - - readStyleGenToken(text, end, type, token); - if (type != stNumber) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - string h = token; - bool hpx = readPxAfterNumber(text, end); - - readStyleGenToken(text, end, type, token); - if (type != stConsFinish) throw Exception(QString("Unexpected token %1 while reading margins() cons!").arg(type)); - - ScalarValue r; - r[variant] = QString("(%1, %2, %3, %4)").arg(x.c_str()).arg(y.c_str()).arg(w.c_str()).arg(h.c_str()).toUtf8().constData(); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - r[variants[i]] = QString("(%1, %2, %3, %4)").arg(adjustPx(variants[i], x, xpx).c_str()).arg(adjustPx(variants[i], y, ypx).c_str()).arg(adjustPx(variants[i], w, wpx).c_str()).arg(adjustPx(variants[i], h, hpx).c_str()).toUtf8().constData(); - } - } - return r; -} - -enum FontFlagBits { - FontBoldBit, - FontItalicBit, - FontUnderlineBit, - - FontFlagsBits -}; - -enum FontFlags { - FontBold = (1 << FontBoldBit), - FontItalic = (1 << FontItalicBit), - FontUnderline = (1 << FontUnderlineBit), - - FontDifferentFlags = (1 << FontFlagsBits) -}; - -struct Font { - string family, size; - int flags; -}; - -typedef QMap Fonts; -QMap fonts; - -ScalarValue prepareFont(int variant, const string &name, const char *&text, const char *end) { - StyleGenTokenType type; - string token; - - ScalarValue sizeScalar, familyScalar; - - string size, family; - int flags = 0; - bool sizepx = false; - - readStyleGenToken(text, end, type, token); - if (type != stConsStart) throw Exception(QString("Unexpected token %1 (%2) while reading font() cons!").arg(type).arg(token.c_str())); - - do { - readStyleGenToken(text, end, type, token); - if (type == stNumber) { - if (size.empty() && sizeScalar.isEmpty()) { - size = token; - sizepx = readPxAfterNumber(text, end); - } else { - throw Exception(QString("Unexpected second number %1 while reading font() cons!").arg(token.c_str())); - } - } else if (type == stName) { - int bit = 0; - if (token == "bold") { - bit = FontBold; - } else if (token == "italic") { - bit = FontItalic; - } else if (token == "underline") { - bit = FontUnderline; - } else { - ByName::const_iterator j = scalarsMap.constFind(token); - if (j != scalarsMap.cend()) { - if (scalars[j.value()].second.first == scNumber) { - if (size.empty() && sizeScalar.isEmpty()) { - sizeScalar = scalars[j.value()].second.second; -// size = findScalarVariant(scalars[j.value()].second.second, variant); - } else { - throw Exception(QString("Unexpected second number %1 while reading font() cons!").arg(token.c_str())); - } - } else if (scalars[j.value()].second.first == scString) { - if (scalars[j.value()].second.second.empty()) { - throw Exception(QString("Unexpected empty string %1 while reading font() cons!").arg(token.c_str())); - } else if (!family.empty() || !familyScalar.empty()) { - throw Exception(QString("Unexpected second string %1 while reading font() cons!").arg(token.c_str())); - } - familyScalar = scalars[j.value()].second.second; -// family = findScalarVariant(scalars[j.value()].second.second, variant); - } else { - throw Exception(QString("Unexpected name token %1 type %2 while reading font() cons!").arg(token.c_str()).arg(scalars[j.value()].second.first)); - } - } else { - throw Exception(QString("Unexpected name token %1 while reading font() cons!").arg(token.c_str())); - } - } - if (flags & bit) { - throw Exception(QString("Unexpected second time token %1 while reading font() cons!").arg(token.c_str())); - } - flags |= bit; - } else if (type == stString) { - if (token.empty()) { - throw Exception(QString("Unexpected empty string while reading font() cons!")); - } else if (!family.empty() || !familyScalar.empty()) { - throw Exception(QString("Unexpected second string %1 while reading font() cons!").arg(token.c_str())); - } - family = token; - } else if (type == stConsFinish) { - break; - } else { - throw Exception(QString("Unexpected token %1 while reading font() cons!").arg(type)); - } - } while (true); - - if (family.empty() && familyScalar.isEmpty()) { - ByName::const_iterator j = scalarsMap.constFind("defaultFontFamily"); - if (j != scalarsMap.cend()) { - if (scalars[j.value()].second.first == scString) { - if (scalars[j.value()].second.second.empty()) { - throw Exception(QString("Unexpected empty string %1 while reading font() cons!").arg(token.c_str())); - } else if (!family.empty() || !familyScalar.isEmpty()) { - throw Exception(QString("Unexpected second string %1 while reading font() cons!").arg(token.c_str())); - } -// family = findScalarVariant(scalars[j.value()].second.second, variant); - familyScalar = scalars[j.value()].second.second; - } else { - throw Exception(QString("Font family not found while reading font() cons!")); - } - } else { - throw Exception(QString("Font family not found while reading font() cons!")); - } - } - if (size.empty() && sizeScalar.isEmpty()) throw Exception(QString("Font size not found while reading font() cons!")); - - Font font; - font.family = familyScalar.empty() ? family : findScalarVariant(familyScalar, variant); - font.size = sizeScalar.empty() ? size : findScalarVariant(sizeScalar, variant); - font.flags = flags; - fonts[variant][name] = font; - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - Font varFont = font; - if (!familyScalar.empty()) varFont.family = findScalarVariant(familyScalar, variants[i]); - varFont.size = sizeScalar.empty() ? adjustPx(variants[i], size, sizepx) : findScalarVariant(sizeScalar, variants[i]); - fonts[variants[i]][name] = varFont; - } - } - - return fillPrepareResult(variant, "(Qt::Uninitialized)"); -} - -ScalarData readScalarElement(string name, const char *&text, const char *end, string objName, const Fields *objFields, int variant) { - string fullName = objFields ? (objName + '.' + name) : name; - ScalarData result; - StyleGenTokenType type; - string token; - readStyleGenToken(text, end, type, token); - if (type == stString) { - result.first = scString; - result.second = prepareString(variant, token); - } else if (type == stNumber) { - result.first = scNumber; - result.second = prepareNumber(variant, token, text, end); - } else if (type == stColor) { - result.first = scColor; - result.second = prepareColor(variant, fullName, token); - } else if (type == stName) { - if (token == "rgb") { - result.first = scColor; - result.second = prepareColorRGB(variant, fullName, text, end); - } else if (token == "rgba") { - result.first = scColor; - result.second = prepareColorRGBA(variant, fullName, text, end); - } else if (token == "rect") { - result.first = scRect; - result.second = prepareRect(variant, text, end); - } else if (token == "sprite") { - result.first = scSprite; - result.second = prepareSprite(variant, text, end); - } else if (token == "point") { - result.first = scPoint; - result.second = preparePoint(variant, text, end); - } else if (token == "size") { - result.first = scSize; - result.second = preparePoint(variant, text, end); - } else if (token == "transition") { - result.first = scTransition; - result.second = prepareTransition(variant, text, end); - } else if (token == "cursor") { - result.first = scCursor; - result.second = prepareCursor(variant, text, end); - } else if (token == "align") { - result.first = scAlign; - result.second = prepareAlign(variant, text, end); - } else if (token == "margins") { - result.first = scMargins; - result.second = prepareMargins(variant, text, end); - } else if (token == "font") { - result.first = scFont; - result.second = prepareFont(variant, fullName, text, end); - } else { - bool found = false; - if (objFields) { - //Fields::const_iterator j = objFields->constFind(token); - //if (j != objFields->cend()) { - // found = true; - // result.second = j.value(); - //} - } - if (!found) { - ByName::const_iterator j = scalarsMap.constFind(token); - if (j != scalarsMap.cend()) { - found = true; - result.first = scalars[j.value()].second.first; - result.second = scalars[j.value()].second.second; - if (result.first == scFont) { - named[variant][fullName] = QPair(result.first, token); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - named[variants[i]][fullName] = QPair(result.first, token); - } - } - } else if (result.first == scColor) { - named[variant][fullName] = QPair(result.first, token); - if (!variant) { - for (int i = 1; i < variantsCount; ++i) { - named[variants[i]][fullName] = QPair(result.first, token); - } - } - } - } - } - if (!found) { - result.first = scTypesCount; - result.second = fillPrepareResult(variant, token); - } - } - } else { - throw Exception(QString("Unexpected token after '%1:', type %2").arg(name.c_str()).arg(type)); - } - return result; -} - - -Scalar readScalarData(StyleGenTokenType &type, string &token, const char *&text, const char *end, string objName = string(), const Fields *objFields = 0) { - if (type != stName) { - throw Exception(QString("Unexpected token, type %1: %2").arg(type).arg(token.c_str())); - } - - string name = token; - if (!objFields) { - ByName::const_iterator i = objectsMap.constFind(name); - if (i != objectsMap.cend()) throw Exception(QString("Redefinition of style object %1").arg(name.c_str())); - - ByName::const_iterator j = scalarsMap.constFind(name); - if (j != scalarsMap.cend()) throw Exception(QString("Redefinition of style scalar %1").arg(name.c_str())); - } - - readStyleGenToken(text, end, type, token); - if (type != stDelimeter) { - throw Exception(QString("Unexpected token, type %1: %2").arg(type).arg(token.c_str())); - } - - string fullName = objFields ? (objName + '.' + name) : name; - Scalar result; - result.first = name; - result.second = readScalarElement(name, text, end, objName, objFields, 0); - - readStyleGenToken(text, end, type, token); - while (type == stVariant) { - readStyleGenToken(text, end, type, token); - if (type != stNumber) { - throw Exception(QString("Unexpected token '%1' reading variants of '%2' scalar").arg(token.c_str()).arg(name.c_str())); - } - int variant = QString(token.c_str()).toInt(); - if (variant != 2 && variant != 3 && variant != 4) { - throw Exception(QString("Unexpected variant index '%1' in '%2' scalar").arg(token.c_str()).arg(name.c_str())); - } - readStyleGenToken(text, end, type, token); - if (type != stDelimeter) { - throw Exception(QString("Unexpected token '%1' reading variants of '%2' scalar, expected delimeter").arg(token.c_str()).arg(name.c_str())); - } - ScalarData el = readScalarElement(name, text, end, objName, objFields, variant); - if (el.first != result.second.first) { - throw Exception(QString("Type changed in variant for '%1'").arg(name.c_str())); - } - result.second.second.insert(variant, el.second[variant]); - - readStyleGenToken(text, end, type, token); - } - return result; -} - -string prepareObject(const string &cls, Fields fields, const string &obj, int variant) { - string result = "("; - Classes::const_iterator i = classes.constFind(cls); - if (i == classes.cend()) throw Exception("Unknown error :("); - - for (FieldTypesMap::const_iterator j = i.value().fields.cbegin(), e = i.value().fields.cend(); j != e;) { - result += "style::" + outputTypeNames[j.value()]; - - Fields::iterator f = fields.find(j.key()); - if (f == fields.end()) { - result += "()"; - } else if (f.value().first != j.value()) { - throw Exception(QString("Bad type of field %1 while parsing %2").arg(j.key().c_str()).arg(obj.c_str())); - } else { - if (variant == -1) { // retina - result += findScalarVariant(f.value().second, (j.value() == scSprite) ? 4 : 0); - } else { - result += findScalarVariant(f.value().second, variant); - } - } - fields.erase(f); - if (++j != e) { - result += ", "; - } - } - - if (fields.size()) { - throw Exception(QString("Unknown fields found in %1, for example %2").arg(obj.c_str()).arg(fields.begin().key().c_str())); - } - - return result + ", Qt::Uninitialized)"; -} - -bool genStyles(const QString &classes_in, const QString &classes_out, const QString &styles_in, const QString &styles_out, const QString &path_to_sprites) { - if (!genClasses(classes_in, classes_out)) return false; - - QString styles_cpp = QString(styles_out).replace(".h", ".cpp"); - if (styles_cpp == styles_out) { - cout << "Bad output file name '" << styles_out.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - QString numbers_cpp = QString(styles_cpp).replace("style_auto.cpp", "numbers.cpp"); - if (numbers_cpp == styles_cpp) { - cout << "Bad output file name '" << numbers_cpp.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - - QFile f(styles_in); - if (!f.open(QIODevice::ReadOnly)) { - cout << "Could not open styles input file '" << styles_in.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - - QString numbers_in = QString(styles_in).replace("style.txt", "numbers.txt"); - if (numbers_in == styles_in) { - cout << "Bad input file name '" << numbers_in.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - - QFile fnum(numbers_in); - if (!fnum.open(QIODevice::ReadOnly)) { - cout << "Could not open numbers input file '" << numbers_in.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - - QImage sprites[variantsCount]; - int widths[variantsCount] = { 0 }; - variantSprites = sprites; - spriteWidths = widths; - - QString sprite0(path_to_sprites + "sprite" + QString(variantPostfixes[0]) + ".png"), spriteLast(path_to_sprites + "sprite" + QString(variantPostfixes[variantsCount - 1]) + ".png"); - variantSprites[0] = QImage(sprite0); - spriteWidths[0] = variantSprites[0].width(); - for (int i = 1; i < variantsCount - 1; ++i) { - variantSprites[i] = QImage(adjustPx(variants[i], variantSprites[0].width(), true), adjustPx(variants[i], variantSprites[0].height(), true), QImage::Format_ARGB32_Premultiplied); - spriteWidths[i] = variantSprites[i].width(); - QPainter p(&variantSprites[i]); - p.setCompositionMode(QPainter::CompositionMode_Source); - p.fillRect(0, 0, variantSprites[i].width(), variantSprites[i].height(), Qt::transparent); - } - variantSprites[variantsCount - 1] = QImage(spriteLast); - spriteWidths[variantsCount - 1] = variantSprites[variantsCount - 1].width(); - - if (!variantSprites[0].width() || !variantSprites[0].height()) { - cout << "Could not open input sprite file '" << sprite0.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - if (!variantSprites[variantsCount - 1].width() || !variantSprites[variantsCount - 1].height()) { - cout << "Could not open input sprite file '" << spriteLast.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - if (adjustPx(variants[variantsCount - 1], variantSprites[0].width(), true) != variantSprites[variantsCount - 1].width()) { - cout << "Bad sprite file width '" << spriteLast.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - if (adjustPx(variants[variantsCount - 1], variantSprites[0].height(), true) != variantSprites[variantsCount - 1].height()) { - cout << "Bad sprite file height '" << spriteLast.toUtf8().constData() << "'!\n"; - QCoreApplication::exit(1); - return false; - } - - QImage grids[variantsCount]; - variantGrids = grids; - for (int i = 0; i < variantsCount; ++i) { - variantGrids[i] = QImage(variantSprites[i].width(), variantSprites[i].height(), QImage::Format_ARGB32_Premultiplied); - QPainter p(&variantGrids[i]); - p.setCompositionMode(QPainter::CompositionMode_Source); - p.fillRect(0, 0, variantSprites[i].width(), variantSprites[i].height(), Qt::transparent); - } - - QByteArray blob = f.readAll(); - const char *text = blob.constData(), *end = blob.constData() + blob.size(); - QMap byName; - QVector byIndex; - string token; - StyleGenTokenType type; - try { - while (true) { - try { - readStyleGenToken(text, end, type, token); - } catch (exception &e) { - if (e.what() != string("Unexpected end of file!")) { - throw; - } - break; - } - string name = token; - Scalar scalar = readScalarData(type, token, text, end); - if (scalar.second.first != scTypesCount) { - scalarsMap.insert(scalar.first, scalars.size()); - scalars.push_back(scalar); - if (type != stFieldFinish) throw Exception(QString("Unexpected token after scalar %1, type %2").arg(name.c_str()).arg(type)); - continue; - } - - string objType = scalar.second.second[0]; - - Object obj; - obj.first = name; - obj.second.first = objType; - - Classes::const_iterator c = classes.constFind(objType); - if (c == classes.cend()) throw Exception(QString("Unknown type %1 used for object %2").arg(objType.c_str()).arg(name.c_str())); - if (type == stConsStart) { - do { - readStyleGenToken(text, end, type, token); - string parent = token; - if (type != stName) throw Exception(QString("Unexpected token %1 while parsing object %2").arg(type).arg(name.c_str())); - - ByName::const_iterator p = objectsMap.constFind(parent); - if (p == objectsMap.cend()) throw Exception(QString("Parent object %1 not found, while parsing object %2").arg(parent.c_str()).arg(name.c_str())); - - const ObjectData &alr(objects[p.value()].second); - for (Fields::const_iterator f = alr.second.cbegin(), e = alr.second.cend(); f != e; ++f) { -// Fields::const_iterator a = obj.second.second.constFind(f.key()); -// if (a == obj.second.second.cend()) { - obj.second.second.insert(f.key(), f.value()); - if (f.value().first == scFont) { - for (int v = 0; v < variantsCount; ++v) { - named[variants[v]][name + '.' + f.key()] = QPair(f.value().first, parent + '.' + f.key()); - } - } else if (f.value().first == scColor) { - for (int v = 0; v < variantsCount; ++v) { - named[variants[v]][name + '.' + f.key()] = QPair(f.value().first, parent + '.' + f.key()); - } - } -// } - } - - readStyleGenToken(text, end, type, token); - if (type == stConsFinish) break; - if (type != stComma) throw Exception(QString("Unexpected token %1, expected , or ) while parsing object %2").arg(type).arg(name.c_str())); - } while (true); - readStyleGenToken(text, end, type, token); - } - if (type != stObjectStart) throw Exception(QString("Unexpected token %1, expected { while parsing object %2").arg(type).arg(name.c_str())); - - while (true) { - readStyleGenToken(text, end, type, token); - if (type == stObjectFinish) { - objectsMap.insert(name, objects.size()); - objects.push_back(obj); - break; - } - - for (int v = 0; v < variantsCount; ++v) { - named[variants[v]].remove(name + '.' + token); - } - - Scalar scalar = readScalarData(type, token, text, end, name, &obj.second.second); - if (scalar.second.first == scTypesCount) throw Exception(QString("Unexpected type name %1 while parsing object %2").arg(scalar.second.second[0].c_str()).arg(name.c_str())); - - obj.second.second.insert(scalar.first, scalar.second); - - if (type != stFieldFinish) throw Exception(QString("Unexpected token after scalar %1 in object %2, type %3").arg(scalar.first.c_str()).arg(name.c_str()).arg(type)); - } - } - - QByteArray outText, cppText; - { - int variant = 0; - - QTextStream tout(&outText), tcpp(&cppText); - tout << "\ -/*\n\ -Created from \'/Resources/style.txt\' by \'/MetaStyle\' project\n\ -\n\ -WARNING! All changes made in this file will be lost!\n\ -\n\ -This file is part of Telegram Desktop,\n\ -the official desktop version of Telegram messaging app, see https://telegram.org\n\ -\n\ -Telegram Desktop is free software: you can redistribute it and/or modify\n\ -it under the terms of the GNU General Public License as published by\n\ -the Free Software Foundation, either version 3 of the License, or\n\ -(at your option) any later version.\n\ -\n\ -It is distributed in the hope that it will be useful,\n\ -but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ -GNU General Public License for more details.\n\ -\n\ -In addition, as a special exception, the copyright holders give permission\n\ -to link the code of portions of this program with the OpenSSL library.\n\ -\n\ -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\ -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org\n\ -*/\n"; - tout << "#pragma once\n\n#include \"ui/style_core.h\"\n\nnamespace st {\n"; - tcpp << "\ -/*\n\ -Created from \'/Resources/style.txt\' by \'/MetaStyle\' project\n\ -\n\ -WARNING! All changes made in this file will be lost!\n\ -\n\ -This file is part of Telegram Desktop,\n\ -the official desktop version of Telegram messaging app, see https://telegram.org\n\ -\n\ -Telegram Desktop is free software: you can redistribute it and/or modify\n\ -it under the terms of the GNU General Public License as published by\n\ -the Free Software Foundation, either version 3 of the License, or\n\ -(at your option) any later version.\n\ -\n\ -It is distributed in the hope that it will be useful,\n\ -but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ -GNU General Public License for more details.\n\ -\n\ -In addition, as a special exception, the copyright holders give permission\n\ -to link the code of portions of this program with the OpenSSL library.\n\ -\n\ -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\ -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org\n\ -*/\n"; - tcpp << "#include \"stdafx.h\"\n#include \"style_auto.h\"\n\nnamespace {\n"; - for (int i = 0, l = scalars.size(); i < l; ++i) { - Scalar &sc(scalars[i]); - tout << "\textern const style::" << outputTypeNames[sc.second.first].c_str() << " &" << sc.first.c_str() << ";\n"; - tcpp << "\tstyle::" << outputTypeNames[sc.second.first].c_str() << " _" << sc.first.c_str() << findScalarVariant(sc.second.second, variant).c_str() << ";\n"; - } - tout << "\n"; - tcpp << "\n"; - for (int i = 0, l = objects.size(); i < l; ++i) { - Object &obj(objects[i]); - tout << "\textern const style::" << obj.second.first.c_str() << " &" << obj.first.c_str() << ";\n"; - tcpp << "\tstyle::" << obj.second.first.c_str() << " _" << obj.first.c_str() << prepareObject(obj.second.first, obj.second.second, obj.first, variant).c_str() << ";\n"; - } - tout << "};\n"; - tcpp << "};\n"; - - tcpp << "\nnamespace st {\n"; - for (int i = 0, l = scalars.size(); i < l; ++i) { - Scalar &sc(scalars[i]); - tcpp << "\tconst style::" << outputTypeNames[sc.second.first].c_str() << " &" << sc.first.c_str() << "(_" << sc.first.c_str() << ");\n"; - } - tcpp << "\n"; - for (int i = 0, l = objects.size(); i < l; ++i) { - Object &obj(objects[i]); - tcpp << "\tconst style::" << obj.second.first.c_str() << " &" << obj.first.c_str() << "(_" << obj.first.c_str() << ");\n"; - } - tcpp << "};\n"; - - tcpp << "\nnamespace style {\n\n"; - tcpp << "\tFontFamilies _fontFamilies;\n"; - tcpp << "\tFontDatas _fontsMap;\n"; - tcpp << "\tColorDatas _colorsMap;\n"; - tcpp << "\tint _spriteWidth = " << spriteWidths[0] << ";\n\n"; - tcpp << "\tvoid startManager() {\n"; - - tcpp << "\n\t\tif (cRetina()) {\n"; - tcpp << "\t\t\tcSetRealScale(dbisOne);\n"; - tcpp << "\t\t\t_spriteWidth = " << spriteWidths[variantsCount - 1] << ";\n\n"; - for (int i = 0, l = scalars.size(); i < l; ++i) { - Scalar &sc(scalars[i]); - if (sc.second.first == scSprite || sc.first == "spriteFile" || sc.first == "emojisFile" || sc.first == "emojiImgSize") { - string v = findScalarVariant(sc.second.second, 4); - if (v != findScalarVariant(sc.second.second, 0)) { - tcpp << "\t\t\t_" << sc.first.c_str() << " = style::" << outputTypeNames[sc.second.first].c_str() << v.c_str() << ";\n"; - } - } - } - for (int i = 0, l = objects.size(); i < l; ++i) { - Object &obj(objects[i]); - string v = prepareObject(obj.second.first, obj.second.second, obj.first, -1); // retina - if (v != prepareObject(obj.second.first, obj.second.second, obj.first, 0)) { - tcpp << "\t\t\t_" << obj.first.c_str() << " = style::" << obj.second.first.c_str() << v.c_str() << ";\n"; - } - } - tcpp << "\t\t} else switch (cScale()) {\n\n"; - for (int i = 1; i < variantsCount; ++i) { - variant = variants[i]; - const char *varName = variantNames[i]; - - tcpp << "\t\tcase " << varName << ":\n"; - tcpp << "\t\t\t_spriteWidth = " << spriteWidths[i] << ";\n\n"; - - typedef QMap FontFamilies; - FontFamilies fontFamilies; - - for (int i = 0, l = scalars.size(); i < l; ++i) { - Scalar &sc(scalars[i]); - string v = findScalarVariant(sc.second.second, variant); - if (v != findScalarVariant(sc.second.second, 0)) { - tcpp << "\t\t\t_" << sc.first.c_str() << " = style::" << outputTypeNames[sc.second.first].c_str() << v.c_str() << ";\n"; - } - } - - for (int i = 0, l = objects.size(); i < l; ++i) { - Object &obj(objects[i]); - string v = prepareObject(obj.second.first, obj.second.second, obj.first, variant); - if (v != prepareObject(obj.second.first, obj.second.second, obj.first, 0)) { - tcpp << "\t\t\t_" << obj.first.c_str() << " = style::" << obj.second.first.c_str() << v.c_str() << ";\n"; - } - } - tcpp << "\t\tbreak;\n\n"; - } - tcpp << "\t\t}\n\n"; - - Colors &clrs(colors[variant]); - for (Colors::const_iterator i = clrs.cbegin(), e = clrs.cend(); i != e; ++i) { - bool differ = false; - for (int j = 1; j < variantsCount; ++j) { - const Colors &otherClrs(colors[variants[j]]); - Colors::const_iterator k = otherClrs.constFind(i.key()); - if (k == otherClrs.cend() || k.value().color != i.value().color) { - differ = true; - break; - } - } - if (!differ) { - tcpp << "\t\t_" << i.key().c_str() << ".init(" << i.value().color.c_str() << ");\n"; - } - } - - for (int i = 0; i < variantsCount; ++i) { - variant = variants[i]; - Named &nmd(named[variant]); - while (true) { - bool found = false; - for (Named::iterator i = nmd.begin(), e = nmd.end(); i != e; ++i) { - if (i.key() == i.value().second) { - throw Exception(QString("Object '%1' is equal to itself!").arg(i.key().c_str())); - } - Named::const_iterator j = nmd.constFind(i.value().second); - if (j != nmd.cend()) { - *i = *j; - found = true; - } - } - if (!found) break; - } - } - - tcpp << "\n\t\tswitch (cScale()) {\n\n"; - for (int i = 0; i < variantsCount; ++i) { - variant = variants[i]; - const char *varName = variantNames[i]; - - tcpp << "\t\tcase " << varName << ":\n"; - - typedef QMap FontFamilies; - FontFamilies fontFamilies; - int familyIndex = 0; - ByName::const_iterator j = scalarsMap.constFind("defaultFontFamily"); - if (j != scalarsMap.cend()) { - if (scalars[j.value()].second.first == scString) { - if (scalars[j.value()].second.second.empty()) { - throw Exception(QString("Unexpected empty string in defaultFontFamily!").arg(token.c_str())); - } - string v = findScalarVariant(scalars[j.value()].second.second, variant); - tcpp << "\t\t\t_fontFamilies.push_back" << v.c_str() << ";\n"; - fontFamilies.insert(v, familyIndex++); - } else { - throw Exception(QString("defaultFontFamily has bad type!")); - } - } else { - throw Exception(QString("defaultFontFamily not found!")); - } - - Fonts &fnts(fonts[variant]); - for (Fonts::const_iterator i = fnts.cbegin(), e = fnts.cend(); i != e; ++i) { - FontFamilies::const_iterator j = fontFamilies.constFind(i.value().family); - if (j == fontFamilies.cend()) { - tcpp << "\n\t\t\t_fontFamilies.push_back" << i.value().family.c_str() << ";\n"; - j = fontFamilies.insert(i.value().family, familyIndex++); - } - tcpp << "\t\t\t_" << i.key().c_str() << ".init(" << i.value().size.c_str() << ", " << i.value().flags << ", " << j.value() << ", 0);\n"; - } - - Colors &clrs(colors[variant]); - if (!clrs.empty()) tcpp << "\n"; - for (Colors::const_iterator i = clrs.cbegin(), e = clrs.cend(); i != e; ++i) { - bool differ = false; - for (int j = 0; j < variantsCount; ++j) { - if (variant == variants[j]) continue; - - const Colors &otherClrs(colors[variants[j]]); - Colors::const_iterator k = otherClrs.constFind(i.key()); - if (k == otherClrs.cend() || k.value().color != i.value().color) { - differ = true; - break; - } - } - if (differ) { - tcpp << "\t\t\t_" << i.key().c_str() << ".init(" << i.value().color.c_str() << ");\n"; - } - } - - Named &nmd(named[variant]); - for (Named::const_iterator i = nmd.cbegin(), e = nmd.cend(); i != e; ++i) { - bool differ = false; - for (int j = 0; j < variantsCount; ++j) { - if (variant == variants[j]) continue; - - const Named &otherNmd(named[variants[j]]); - Named::const_iterator k = otherNmd.constFind(i.key()); - if (k == otherNmd.cend() || k.value().second != i.value().second) { - differ = true; - break; - } - } - if (differ) { - tcpp << "\t\t\t_" << i.key().c_str() << " = _" << i.value().second.c_str() << ";\n"; - } - } - tcpp << "\t\tbreak;\n\n"; - } - tcpp << "\t\t}\n\n"; - - variant = 0; - Named &nmd(named[variant]); - for (Named::const_iterator i = nmd.cbegin(), e = nmd.cend(); i != e; ++i) { - bool differ = false; - for (int j = 1; j < variantsCount; ++j) { - const Named &otherNmd(named[variants[j]]); - Named::const_iterator k = otherNmd.constFind(i.key()); - if (k == otherNmd.cend() || k.value().second != i.value().second) { - differ = true; - break; - } - } - if (!differ) { - tcpp << "\t\t_" << i.key().c_str() << " = _" << i.value().second.c_str() << ";\n"; - } - } - - tcpp << "\t}\n"; - tcpp << "\n};\n"; - } - - for (int i = 1; i < variantsCount - 1; ++i) { - QString spritei(path_to_sprites + "sprite" + QString(variantPostfixes[i]) + ".png"), spriteLast(path_to_sprites + "sprite" + QString(variantPostfixes[i]) + ".png"); - QByteArray sprite; - { - QBuffer sbuf(&sprite); - if (!variantSprites[i].save(&sbuf, "PNG")) { - throw Exception(("Could not write intermediate sprite '" + spritei + "'!")); - } - } - bool needResave = !QFileInfo(spritei).exists(); - if (!needResave) { - QFile sf(spritei); - if (!sf.open(QIODevice::ReadOnly)) { - needResave = true; - } else { - QByteArray already(sf.readAll()); - if (already.size() != sprite.size() || memcmp(already.constData(), sprite.constData(), already.size())) { - needResave = true; - } - } - } - if (needResave) { - QFile sf(spritei); - if (!sf.open(QIODevice::WriteOnly)) { - throw Exception(("Could not write intermediate sprite '" + spritei + "'!")); - } else { - if (sf.write(sprite) != sprite.size()) { - throw Exception(("Could not write intermediate sprite '" + spritei + "'!")); - } - } - } - } - for (int i = 0; i < variantsCount; ++i) { - QString spritei(path_to_sprites + "grid" + QString(variantPostfixes[i]) + ".png"), spriteLast(path_to_sprites + "sprite" + QString(variantPostfixes[i]) + ".png"); - QByteArray grid; - { - QBuffer gbuf(&grid); - if (!variantGrids[i].save(&gbuf, "PNG")) { - throw Exception(("Could not write intermediate grid '" + spritei + "'!")); - } - } - bool needResave = !QFileInfo(spritei).exists(); - if (!needResave) { - QFile gf(spritei); - if (!gf.open(QIODevice::ReadOnly)) { - needResave = true; - } else { - QByteArray already(gf.readAll()); - if (already.size() != grid.size() || memcmp(already.constData(), grid.constData(), already.size())) { - needResave = true; - } - } - } - if (needResave) { - QFile gf(spritei); - if (!gf.open(QIODevice::WriteOnly)) { - throw Exception(("Could not write intermediate grid '" + spritei + "'!")); - } else { - if (gf.write(grid) != grid.size()) { - throw Exception(("Could not write intermediate grid '" + spritei + "'!")); - } - } - } - } - - QFile out(styles_out), cpp(styles_cpp); - bool write_out = true; - if (out.open(QIODevice::ReadOnly)) { - QByteArray wasOut = out.readAll(); - if (wasOut.size() == outText.size()) { - if (!memcmp(wasOut.constData(), outText.constData(), outText.size())) { - write_out = false; - } - } - out.close(); - } - if (write_out) { - cout << "Style compiled, writing " << scalars.size() << " scalars and " << objects.size() << " objects.\n"; - if (!out.open(QIODevice::WriteOnly)) throw Exception("Could not open style_auto.h for writing!"); - if (out.write(outText) != outText.size()) throw Exception("Could not open style_auto.h for writing!"); - } - bool write_cpp = true; - if (cpp.open(QIODevice::ReadOnly)) { - QByteArray wasCpp = cpp.readAll(); - if (wasCpp.size() == cppText.size()) { - if (!memcmp(wasCpp.constData(), cppText.constData(), cppText.size())) { - write_cpp = false; - } - } - cpp.close(); - } - if (write_cpp) { - if (!write_out) cout << "Style updated, writing " << scalars.size() << " scalars and " << objects.size() << " objects.\n"; - if (!cpp.open(QIODevice::WriteOnly)) throw Exception("Could not open style_auto.cpp for writing!"); - if (cpp.write(cppText) != cppText.size()) throw Exception("Could not open style_auto.cpp for writing!"); - } - - QMap > numberRules; - QList numlines = fnum.readAll().split('\n'); - for (int i = 0, l = numlines.size(); i < l; ++i) { - QList strs = numlines.at(i).split(';'); - if (strs.isEmpty()) continue; - - QString code = QString::fromLatin1(strs.at(0)).trimmed(); - if (code.isEmpty() || QRegularExpression("[^0-9]").match(code).hasMatch()) { - throw Exception("Bad string in number.txt: " + numlines.at(i)); - } - - if (strs.size() < 5) { - numberRules.insert(code, QVector()); - } else { - QString lenstr = QString::fromLatin1(strs.at(4)).trimmed(), pattern = QString::fromLatin1(strs.at(3)).trimmed(); - if (QRegularExpression("[^0-9]").match(lenstr).hasMatch() || !pattern.startsWith(code + ' ')) { - throw Exception("Bad string in number.txt: " + numlines.at(i)); - } - QStringList lst = pattern.mid(code.size() + 1).split(' '); - int len = lenstr.toInt(), sum = code.size(); - QVector result; - for (int j = 0, c = lst.size(); j < c; ++j) { - if (lst.at(j).isEmpty()) continue; - if (QRegularExpression("[^X]").match(lst.at(j)).hasMatch()) { - throw Exception("Bad string in number.txt: " + numlines.at(i)); - } - result.push_back(lst.at(j).size()); - sum += lst.at(j).size(); - } - if (sum != len) { - throw Exception("Bad length in number.txt: " + numlines.at(i)); - } - numberRules.insert(code, result); - } - } - - QByteArray numText; - { - QTextStream tnum(&numText); - tnum << "\ -/*\n\ -Created from \'/Resources/style.txt\' by \'/MetaStyle\' project\n\ -\n\ -WARNING! All changes made in this file will be lost!\n\ -\n\ -This file is part of Telegram Desktop,\n\ -the official desktop version of Telegram messaging app, see https://telegram.org\n\ -\n\ -Telegram Desktop is free software: you can redistribute it and/or modify\n\ -it under the terms of the GNU General Public License as published by\n\ -the Free Software Foundation, either version 3 of the License, or\n\ -(at your option) any later version.\n\ -\n\ -It is distributed in the hope that it will be useful,\n\ -but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ -GNU General Public License for more details.\n\ -\n\ -In addition, as a special exception, the copyright holders give permission\n\ -to link the code of portions of this program with the OpenSSL library.\n\ -\n\ -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\ -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org\n\ -*/\n"; - tnum << "#include \"stdafx.h\"\n#include \"numbers.h\"\n\n"; - tnum << "QVector phoneNumberParse(const QString &number) {\n"; - tnum << "\tQVector result;\n\n"; - tnum << "\tint32 len = number.size();\n"; - tnum << "\tif (len > 0) switch (number.at(0).unicode()) {\n"; - QString already; - for (QMap >::const_iterator i = numberRules.cend(), e = numberRules.cbegin(); i != e;) { - --i; - QString k = i.key(); - bool onlyLastChanged = true; - while (!already.isEmpty() && (already.size() > k.size() || !already.endsWith(k.at(already.size() - 1)))) { - if (!onlyLastChanged) { - tnum << QString("\t").repeated(1 + already.size()) << "}\n"; - tnum << QString("\t").repeated(already.size()) << "break;\n"; - } - already = already.mid(0, already.size() - 1); - onlyLastChanged = false; - } - if (already == k) { - tnum << QString("\t").repeated(1 + already.size()) << "}\n"; - } else { - bool onlyFirstCheck = true; - while (already.size() < k.size()) { - if (!onlyFirstCheck) tnum << QString("\t").repeated(1 + already.size()) << "if (len > " << already.size() << ") switch (number.at(" << already.size() << ").unicode()) {\n"; - tnum << QString("\t").repeated(1 + already.size()) << "case '" << k.at(already.size()).toLatin1() << "':\n"; - already.push_back(k.at(already.size())); - onlyFirstCheck = false; - } - } - if (i.value().isEmpty()) { - tnum << QString("\t").repeated(1 + already.size()) << "return QVector(1, " << k.size() << ");\n"; - } else { - tnum << QString("\t").repeated(1 + already.size()) << "result.reserve(" << (i.value().size() + 1) << ");\n"; - tnum << QString("\t").repeated(1 + already.size()) << "result.push_back(" << k.size() << ");\n"; - for (int j = 0, l = i.value().size(); j < l; ++j) { - tnum << QString("\t").repeated(1 + already.size()) << "result.push_back(" << i.value().at(j) << ");\n"; - } - tnum << QString("\t").repeated(1 + already.size()) << "return result;\n"; - } - } - bool onlyLastChanged = true; - while (!already.isEmpty()) { - if (!onlyLastChanged) { - tnum << QString("\t").repeated(1 + already.size()) << "}\n"; -// tnum << QString("\t").repeated(1 + already.size()) << "\return result;\n"; - } - already = already.mid(0, already.size() - 1); - onlyLastChanged = false; - } - tnum << "\t}\n\n"; - tnum << "\treturn result;\n"; - tnum << "}\n"; - } - QFile num(numbers_cpp); - bool write_num = true; - if (num.open(QIODevice::ReadOnly)) { - QByteArray wasNum = num.readAll(); - if (wasNum.size() == numText.size()) { - if (!memcmp(wasNum.constData(), numText.constData(), numText.size())) { - write_num = false; - } - } - num.close(); - } - if (write_num) { - cout << "Numbers compiled, writing..\n"; - if (!num.open(QIODevice::WriteOnly)) throw Exception("Could not open numbers.cpp for writing!"); - if (num.write(numText) != numText.size()) throw Exception("Could not open numbers.cpp for writing!"); - } - } catch (exception &e) { - cout << e.what() << "\n"; - QCoreApplication::exit(1); - return false; - } - return true; -} diff --git a/Telegram/SourceFiles/_other/genstyles.h b/Telegram/SourceFiles/_other/genstyles.h deleted file mode 100644 index 05fa8c333..000000000 --- a/Telegram/SourceFiles/_other/genstyles.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -This file is part of Telegram Desktop, -the official desktop version of Telegram messaging app, see https://telegram.org - -Telegram Desktop is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -It is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -In addition, as a special exception, the copyright holders give permission -to link the code of portions of this program with the OpenSSL library. - -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org -*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using std::string; -using std::cout; -using std::cerr; -using std::exception; - -class Exception : public exception { -public: - - Exception(const QString &msg) : _msg(msg.toUtf8()) { - } - - virtual const char *what() const throw() { - return _msg.constData(); - } - virtual ~Exception() throw() { - } - -private: - QByteArray _msg; -}; - -bool genStyles(const QString &classes_in, const QString &classes_out, const QString &styles_in, const QString &styles_out, const QString &path_to_sprites); - -class GenStyles : public QObject { - Q_OBJECT - -public: - GenStyles(const QString &classes_in, const QString &classes_out, const QString &styles_in, const QString &styles_out, const QString &path_to_sprites) : QObject(0), - _classes_in(classes_in), _classes_out(classes_out), _styles_in(styles_in), _styles_out(styles_out), _path_to_sprites(path_to_sprites) { - } - -public slots: - void run() { - if (genStyles(_classes_in, _classes_out, _styles_in, _styles_out, _path_to_sprites)) { - emit finished(); - } - } - -signals: - void finished(); - -private: - - QString _classes_in, _classes_out, _styles_in, _styles_out, _path_to_sprites; -}; diff --git a/Telegram/SourceFiles/_other/msmain.cpp b/Telegram/SourceFiles/_other/msmain.cpp deleted file mode 100644 index c59c7dbc4..000000000 --- a/Telegram/SourceFiles/_other/msmain.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* -This file is part of Telegram Desktop, -the official desktop version of Telegram messaging app, see https://telegram.org - -Telegram Desktop is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -It is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -In addition, as a special exception, the copyright holders give permission -to link the code of portions of this program with the OpenSSL library. - -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org -*/ -#include "msmain.h" -#include - -int main(int argc, char *argv[]) { - QString classes_in("style_classes.txt"), classes_out("style_classes.h"), styles_in("style.txt"), styles_out("style_auto.h"), path_to_sprites("./Resources/art/"); - for (int i = 0; i < argc; ++i) { - if (string("-classes_in") == argv[i]) { - if (++i < argc) classes_in = argv[i]; - } else if (string("-classes_out") == argv[i]) { - if (++i < argc) classes_out = argv[i]; - } else if (string("-styles_in") == argv[i]) { - if (++i < argc) styles_in = argv[i]; - } else if (string("-styles_out") == argv[i]) { - if (++i < argc) styles_out = argv[i]; - } else if (string("-path_to_sprites") == argv[i]) { - if (++i < argc) path_to_sprites = argv[i]; - } - } -#ifdef Q_OS_MAC - if (QDir(QString()).absolutePath() == "/") { - QString first = argc ? QString::fromLocal8Bit(argv[0]) : QString(); - if (!first.isEmpty()) { - QFileInfo info(first); - if (info.exists()) { - QDir result(info.absolutePath() + "/../../.."); - QString basePath = result.absolutePath() + '/'; - classes_in = basePath + classes_in; - classes_out = basePath + classes_out; - styles_in = basePath + styles_in; - styles_out = basePath + styles_out; - path_to_sprites = basePath + path_to_sprites; - } - } - } -#endif - QObject *taskImpl = new GenStyles(classes_in, classes_out, styles_in, styles_out, path_to_sprites); - - QCoreApplication a(argc, argv); - - QObject::connect(taskImpl, SIGNAL(finished()), &a, SLOT(quit())); - QTimer::singleShot(0, taskImpl, SLOT(run())); - - return a.exec(); -} diff --git a/Telegram/SourceFiles/_other/msmain.h b/Telegram/SourceFiles/_other/msmain.h deleted file mode 100644 index 4db672552..000000000 --- a/Telegram/SourceFiles/_other/msmain.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -This file is part of Telegram Desktop, -the official desktop version of Telegram messaging app, see https://telegram.org - -Telegram Desktop is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -It is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -In addition, as a special exception, the copyright holders give permission -to link the code of portions of this program with the OpenSSL library. - -Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE -Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org -*/ -#include - -#include "genstyles.h" diff --git a/Telegram/Style.plist b/Telegram/Style.plist deleted file mode 100644 index ad8b66a7a..000000000 --- a/Telegram/Style.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - MetaStyle - CFBundleGetInfoString - MetaStyle compiler - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundlePackageType - APPL - CFBundleSignature - ???? - NOTE - - NSPrincipalClass - NSApplication - - diff --git a/Telegram/Telegram.pro b/Telegram/Telegram.pro index 89232509b..6d2ef081a 100644 --- a/Telegram/Telegram.pro +++ b/Telegram/Telegram.pro @@ -31,18 +31,16 @@ linux { codegen_style.target = style_target codegen_style.depends = FORCE -codegen_style.commands = ./../codegen/Debug/codegen_style "-I./../../Telegram/SourceFiles" "-o./GeneratedFiles/styles" "./../../Telegram/Resources/all_files.style" --rebuild +codegen_style.commands = ./../codegen/Debug/codegen_style "-I./../../Telegram/Resources" "-I./../../Telegram/SourceFiles" "-o./GeneratedFiles/styles" all_files.style --rebuild codegen_numbers.target = numbers_target codegen_numbers.depends = ./../../Telegram/Resources/numbers.txt +codegen_numbers.commands = ./../codegen/Debug/codegen_numbers "-o./GeneratedFiles" "./../../Telegram/Resources/numbers.txt" CONFIG(debug, debug|release) { -#codegen_style.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_style "-I./SourceFiles" "-o./../Linux/DebugIntermediate/GeneratedFiles/styles" "./Resources/all_files.style" --rebuild && cd ../Linux/DebugIntermediate codegen_numbers.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_numbers "-o./../Linux/DebugIntermediate/GeneratedFiles" "./Resources/numbers.txt" && cd ../Linux/DebugIntermediate } CONFIG(release, debug|release) { -#codegen_style.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_style "-I./SourceFiles" "-o./../Linux/ReleaseIntermediate/GeneratedFiles/styles" "./Resources/all_files.style" --rebuild && cd ../Linux/ReleaseIntermediate -codegen_numbers.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_numbers "-o./../Linux/ReleaseIntermediate/GeneratedFiles" "./Resources/numbers.txt" && cd ../Linux/ReleaseIntermediate } codegen_lang.target = lang_target @@ -70,6 +68,7 @@ SOURCES += \ ./GeneratedFiles/numbers.cpp \ ./GeneratedFiles/styles/style_basic.cpp \ ./GeneratedFiles/styles/style_basic_types.cpp \ + ./GeneratedFiles/styles/style_overview.cpp \ ./SourceFiles/main.cpp \ ./SourceFiles/stdafx.cpp \ ./SourceFiles/apiwrap.cpp \ @@ -155,6 +154,10 @@ SOURCES += \ ./SourceFiles/serialize/serialize_document.cpp \ ./SourceFiles/ui/buttons/peer_avatar_button.cpp \ ./SourceFiles/ui/style/style_core.cpp \ + ./SourceFiles/ui/style/style_core_color.cpp \ + ./SourceFiles/ui/style/style_core_font.cpp \ + ./SourceFiles/ui/style/style_core_icon.cpp \ + ./SourceFiles/ui/style/style_core_types.cpp \ ./SourceFiles/ui/text/text.cpp \ ./SourceFiles/ui/text/text_block.cpp \ ./SourceFiles/ui/text/text_entity.cpp \ @@ -183,6 +186,7 @@ HEADERS += \ ./GeneratedFiles/numbers.h \ ./GeneratedFiles/styles/style_basic.h \ ./GeneratedFiles/styles/style_basic_types.h \ + ./GeneratedFiles/styles/style_overview.h \ ./SourceFiles/stdafx.h \ ./SourceFiles/apiwrap.h \ ./SourceFiles/app.h \ @@ -273,6 +277,10 @@ HEADERS += \ ./SourceFiles/serialize/serialize_document.h \ ./SourceFiles/ui/buttons/peer_avatar_button.h \ ./SourceFiles/ui/style/style_core.h \ + ./SourceFiles/ui/style/style_core_color.h \ + ./SourceFiles/ui/style/style_core_font.h \ + ./SourceFiles/ui/style/style_core_icon.h \ + ./SourceFiles/ui/style/style_core_types.h \ ./SourceFiles/ui/text/text.h \ ./SourceFiles/ui/text/text_block.h \ ./SourceFiles/ui/text/text_entity.h \ @@ -332,7 +340,7 @@ CONFIG(release, debug|release) { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -Ofast -flto -fno-strict-aliasing -g QMAKE_LFLAGS_RELEASE -= -O1 - QMAKE_LFLAGS_RELEASE += -Ofast -flto -g -rdynamic + QMAKE_LFLAGS_RELEASE += -Ofast -flto -g -rdynamic -static-libstdc++ } # Linux 32bit fails Release link with Link-Time Optimization: virtual memory exhausted unix { @@ -344,7 +352,7 @@ unix { } } CONFIG(debug, debug|release) { - QMAKE_LFLAGS_DEBUG += -g -rdynamic + QMAKE_LFLAGS_DEBUG += -g -rdynamic -static-libstdc++ } INCLUDEPATH += ./../../Libraries/QtStatic/qtbase/include/QtGui/5.5.1/QtGui\ diff --git a/doc/building-qmake.md b/doc/building-qmake.md index ff6ac22e1..d54a927c2 100644 --- a/doc/building-qmake.md +++ b/doc/building-qmake.md @@ -75,10 +75,16 @@ Building ./configure make - # Build MetaStyle - mkdir -p "$srcdir/tdesktop/Linux/DebugIntermediateStyle" - cd "$srcdir/tdesktop/Linux/DebugIntermediateStyle" - qmake CONFIG+=debug "../../Telegram/MetaStyle.pro" + # Build codegen_style + mkdir -p "$srcdir/tdesktop/Linux/obj/codegen_style/Debug" + cd "$srcdir/tdesktop/Linux/obj/codegen_style/Debug" + qmake CONFIG+=debug ../../../../Telegram/build/qmake/codegen_style/codegen_style.pro + make + + # Build codegen_numbers + mkdir -p "$srcdir/tdesktop/Linux/obj/codegen_numbers/Debug" + cd "$srcdir/tdesktop/Linux/obj/codegen_numbers/Debug" + qmake CONFIG+=debug ../../../../Telegram/build/qmake/codegen_numbers/codegen_numbers.pro make # Build MetaLang diff --git a/doc/building-qtcreator.md b/doc/building-qtcreator.md index fd8c7dee3..713cb51eb 100644 --- a/doc/building-qtcreator.md +++ b/doc/building-qtcreator.md @@ -164,12 +164,24 @@ In Terminal go to **/home/user/TBuild/Libraries** and run make sudo make install +###Building Telegram codegen utilities + +In Terminal go to **/home/user/TBuild/tdesktop** and run + + mkdir -p Linux/obj/codegen_style/Debug + cd Linux/obj/codegen_style/Debug + /usr/local/Qt-5.5.1/bin/qmake CONFIG+=debug ../../../../Telegram/build/qmake/codegen_style/codegen_style.pro + make + mkdir -p ../../codegen_numbers/Debug + cd ../../codegen_numbers/Debug + /usr/local/Qt-5.5.1/bin/qmake CONFIG+=debug ../../../../Telegram/build/qmake/codegen_numbers/codegen_numbers.pro + make + ###Building Telegram Desktop * Launch Qt Creator, all projects will be taken from **/home/user/TBuild/tdesktop/Telegram** * Tools > Options > Build & Run > Qt Versions tab > Add > File System /usr/local/Qt-5.5.1/bin/qmake > **Qt 5.5.1 (Qt-5.5.1)** > Apply * Tools > Options > Build & Run > Kits tab > Desktop (default) > change **Qt version** to **Qt 5.5.1 (Qt-5.5.1)** > Apply -* Open MetaStyle.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateStyle** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateStyle** and build for Debug * Open MetaLang.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateLang** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateLang** and build for Debug * Open Telegram.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediate** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediate** and build for Debug, if GeneratedFiles are not found click **Run qmake** from **Build** menu and try again * Open Updater.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateUpdater** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateUpdater** and build for Debug diff --git a/doc/building-xcode-old.md b/doc/building-xcode-old.md index d7664e4a2..934a99fb8 100644 --- a/doc/building-xcode-old.md +++ b/doc/building-xcode-old.md @@ -4,6 +4,8 @@ Choose a folder for the future build, for example **/Users/user/TBuild** There you will have two folders, **Libraries** for third-party libs and **tdesktop** (or **tdesktop-master**) for the app. +**IMPORTANT** You are required to build and install Qt 5.5.1 from the [Xcode 7](building-xcode.md) instructions first. + ###Clone source code By git – in Terminal go to **/Users/user/TBuild** and run @@ -192,7 +194,6 @@ building (**make** command) will take really long time. ###Building Telegram Desktop * Launch Xcode, all projects will be taken from **/Users/user/TBuild/tdesktop/Telegram** -* Open MetaStyle.xcodeproj and build for Debug (Release optionally) * Open MetaEmoji.xcodeproj and build for Debug (Release optionally) * Open MetaLang.xcodeproj and build for Debug (Release optionally) * Open Telegram.xcodeproj and build for Debug diff --git a/doc/building-xcode.md b/doc/building-xcode.md index 0aba04026..e63ab74de 100644 --- a/doc/building-xcode.md +++ b/doc/building-xcode.md @@ -251,7 +251,6 @@ In Terminal go to **/Users/user/TBuild/Libraries** and run: ###Building Telegram Desktop * Launch Xcode, all projects will be taken from **/Users/user/TBuild/tdesktop/Telegram** -* Open MetaStyle.xcodeproj and build for Debug (Release optionally) * Open MetaEmoji.xcodeproj and build for Debug (Release optionally) * Open MetaLang.xcodeproj and build for Debug (Release optionally) * Open Telegram.xcodeproj and build for Debug