aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dobell <benjamin.dobell+git@glassechidna.com.au>2015-02-19 05:08:26 +1100
committerBenjamin Dobell <benjamin.dobell+git@glassechidna.com.au>2015-02-19 05:22:04 +1100
commit67c17cc48bc3a2914d8e6ecb39ec1fb54b4806aa (patch)
tree006bc568c36bb43a4dbaed17c8ffb0d0dbdcb12f
parentb22ae7b89f7993f632e10e18c116f293f314575f (diff)
downloadexternal_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.txt80
-rw-r--r--heimdall-frontend/CMakeLists.txt6
-rw-r--r--heimdall-frontend/mainwindow.ui59
-rw-r--r--heimdall-frontend/source/main.cpp2
-rw-r--r--heimdall/CMakeLists.txt5
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})