diff options
author | Benjamin Dobell <benjamin.dobell+git@glassechidna.com.au> | 2015-02-19 05:08:26 +1100 |
---|---|---|
committer | Benjamin Dobell <benjamin.dobell+git@glassechidna.com.au> | 2015-02-19 05:22:04 +1100 |
commit | 67c17cc48bc3a2914d8e6ecb39ec1fb54b4806aa (patch) | |
tree | 006bc568c36bb43a4dbaed17c8ffb0d0dbdcb12f | |
parent | b22ae7b89f7993f632e10e18c116f293f314575f (diff) | |
download | external_heimdall-67c17cc48bc3a2914d8e6ecb39ec1fb54b4806aa.zip external_heimdall-67c17cc48bc3a2914d8e6ecb39ec1fb54b4806aa.tar.gz external_heimdall-67c17cc48bc3a2914d8e6ecb39ec1fb54b4806aa.tar.bz2 |
Fix Unix build issues and work-around Qt5 Mac UI bugs
-rw-r--r-- | OSX/README.txt | 80 | ||||
-rw-r--r-- | heimdall-frontend/CMakeLists.txt | 6 | ||||
-rw-r--r-- | heimdall-frontend/mainwindow.ui | 59 | ||||
-rw-r--r-- | heimdall-frontend/source/main.cpp | 2 | ||||
-rw-r--r-- | heimdall/CMakeLists.txt | 5 |
5 files changed, 77 insertions, 75 deletions
diff --git a/OSX/README.txt b/OSX/README.txt index 3d6b434..8c368b5 100644 --- a/OSX/README.txt +++ b/OSX/README.txt @@ -477,79 +477,15 @@ be included. -Appendix B - Installing Heimdall from Source: +Appendix B - Installing Heimdall Suite from Source - PREREQUISITES: - - Heimdall requires C++11 (aka C++0x) functionality in order to compile. - Unfortunately, XCode includes an old version of GCC which does not - include support for C++11. XCode does include clang, which does - support C++11. However, clang's C++11 can only target OS X 10.7 or - newer. There are also slight compatibility issues between clang and - Qt, which is required in order to compile Heimdall Frontend. As such - these instructions will utilise GCC 4.7 installed via Homebrew. - - Xcode can be downloaded through the App store or from Apple's - developer website: - - https://developer.apple.com/xcode/ - - Homebrew install instructions are available at: - - http://mxcl.github.io/homebrew/ - - 1. First make sure you have installed XCode and Homebrew (see above). Then - open a terminal and install GCC 4.7, pkgconfig and libusbx via Homebrew: - - brew tap homebrew/versions - brew install gcc47 pkgconfig libusbx - - NOTE: Installing GCC 4.7 will take a long time. + 1. Open Terminal and install dependencies using Homebrew (http://brew.sh) - 2. In a terminal navigate to the directory you downloaded (or extracted) - Heimdall to. + brew install libusb qt5 cmake - 3. Enter the following commands to compile libpit. + 2. Build Heimdall & Heimdall Frontend - cd libpit - ./configure CC=gcc-4.7 CXX=g++-4.7 - make - cd .. - - NOTE: There is no need to run "sudo make install". - - 4. Enter the following commands to compile and install Heimdall: - - cd heimdall - ./configure CC=gcc-4.7 CXX=g++-4.7 - make - sudo make install - cd .. - - 5. If you haven't installed the driver before, do the following: - - cd OSX - sudo ./install-kext.sh - - 6. Done - - - -Appendix C - Installing Heimdall Frontend from Source: - - 1. Compile and install Heimdall, see Appendix B. - - 2. Heimdall Frontend requires Qt (4.7 or later, but prior to 5.0), available - from: - - http://qt-project.org/downloads - - 3. Open a terminal and navigate to the directory you extracted Heimdall to. - - 4. Enter the following commands to compile and install Heimdall Frontend: - - cd heimdall-frontend - qmake -spec macx-g++ QMAKE_CC=gcc-4.7 QMAKE_CXX=g++-4.7 - make - - 5. Done + mkdir build + cd build + cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DQt5Widgets_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Widgets .. + make diff --git a/heimdall-frontend/CMakeLists.txt b/heimdall-frontend/CMakeLists.txt index 76dac2e..95889b3 100644 --- a/heimdall-frontend/CMakeLists.txt +++ b/heimdall-frontend/CMakeLists.txt @@ -12,7 +12,10 @@ find_package(Qt5Widgets REQUIRED) find_package(ZLIB REQUIRED) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") -set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static") + +if(MINGW) + set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static") +endif(MINGW) include_directories(${LIBPIT_INCLUDE_DIRS}) @@ -33,6 +36,7 @@ qt5_add_resources(HEIMDALL_FRONTEND_RESOURCES mainwindow.qrc) add_executable(heimdall-frontend WIN32 + MACOSX_BUNDLE ${HEIMDALL_FRONTEND_SOURCE_FILES} ${HEIMDALL_FRONTEND_FORMS} ${HEIMDALL_FRONTEND_RESOURCES}) diff --git a/heimdall-frontend/mainwindow.ui b/heimdall-frontend/mainwindow.ui index f3113f2..91df00f 100644 --- a/heimdall-frontend/mainwindow.ui +++ b/heimdall-frontend/mainwindow.ui @@ -196,6 +196,9 @@ <height>31</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Load / Customise</string>
</property>
@@ -269,6 +272,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Browse</string>
</property>
@@ -343,6 +349,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Donate</string>
</property>
@@ -359,6 +368,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Homepage</string>
</property>
@@ -510,9 +522,21 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Browse</string>
</property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>false</bool>
+ </property>
+ <property name="flat">
+ <bool>false</bool>
+ </property>
</widget>
<widget class="QLabel" name="pitBrowseTipLabel">
<property name="enabled">
@@ -935,6 +959,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Remove Device</string>
</property>
@@ -1105,6 +1132,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Add</string>
</property>
@@ -1122,6 +1152,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Remove</string>
</property>
@@ -1338,6 +1371,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Add Device</string>
</property>
@@ -1355,6 +1391,9 @@ <height>31</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Build</string>
</property>
@@ -1416,6 +1455,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Save As...</string>
</property>
@@ -1433,6 +1475,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Download</string>
</property>
@@ -1531,6 +1576,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="toolTip">
<string/>
</property>
@@ -1625,6 +1673,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Print</string>
</property>
@@ -1750,6 +1801,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Browse</string>
</property>
@@ -1777,6 +1831,9 @@ <height>23</height>
</rect>
</property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Close</string>
</property>
@@ -1828,7 +1885,7 @@ <x>0</x>
<y>0</y>
<width>788</width>
- <height>21</height>
+ <height>22</height>
</rect>
</property>
<widget class="QMenu" name="menuHelp">
diff --git a/heimdall-frontend/source/main.cpp b/heimdall-frontend/source/main.cpp index c327b63..5d70e28 100644 --- a/heimdall-frontend/source/main.cpp +++ b/heimdall-frontend/source/main.cpp @@ -25,7 +25,9 @@ // Heimdall Frontend
#include "mainwindow.h"
+#if defined(QT_STATIC)
Q_IMPORT_PLUGIN (QWindowsIntegrationPlugin);
+#endif
using namespace HeimdallFrontend;
diff --git a/heimdall/CMakeLists.txt b/heimdall/CMakeLists.txt index a822702..82dc2d3 100644 --- a/heimdall/CMakeLists.txt +++ b/heimdall/CMakeLists.txt @@ -9,7 +9,10 @@ set(LIBPIT_INCLUDE_DIRS ../libpit/source) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") -set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static") + +if(MINGW) + set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static") +endif(MINGW) include_directories(SYSTEM ${LIBUSB_INCLUDE_DIRS}) |