Commit graph

174 commits

Author SHA1 Message Date
Dominik Riebeling
bbb46a885d Improve handling of Qt5 subversions on OS X.
Qt 5.6 on OS X requires targeting at least OS X 10.7, while for earlier
versions we can still target 10.6. Handle this case and inform the user about
the used target version.

Change-Id: I78e426037e2966241ab9a63105e04e7366b469ed
2016-03-27 12:38:18 +02:00
Dominik Riebeling
e606ee42c2 Make lrelease detection work on Windows.
Make sure to expand variable before testing.

Change-Id: I6b6f11782677c178fe3f2209f84887084940976a
2015-05-30 19:16:11 +02:00
Dominik Riebeling
ef21b30454 Make lrelease detection work on Windows.
Windows doesn't have which, so building natively on Windows didn't create
translations anymore. Use a which-less approach instead.

Change-Id: I7b4c40b26d68da54277a148e8e2d76ac81061c8b
2015-05-30 19:01:33 +02:00
Dominik Riebeling
a213c1828f Extend project file message output and always run lrelease.
Check for lrelease and always try to run it if found. If not found show a
warning. This avoids build problems for certain setups which previously
required -config dbg to complete.

Change-Id: I60f0f49adc8455743afc5e4d23294ce0729f38d2
2015-05-18 22:44:36 +02:00
Dominik Riebeling
44fcebb988 Fix libs path for building with MSVC.
Change-Id: Iaa0a20c8bff1faaa191de70d6f02c62dafec1591
2015-05-13 23:00:49 +02:00
Dominik Riebeling
09a25deeea Apply -Wno-unused-local-typedefs for gcc only.
Change-Id: I098882ea1c1a3f5265a763046400d79aed8eb43f
2015-05-02 16:52:14 +02:00
Dominik Riebeling
9ecfe6151b Separate logger / quazip project file parts.
Move to separate project include file for better readability and reusability.

Change-Id: If75805be8fad4aec8ede600f5c616a9412ac0505
2015-05-02 16:52:14 +02:00
Dominik Riebeling
b230cf3aa2 Update quazip to release 0.7.1.
Update to latest quazip release. Note that quazip is now LGPL and not GPL /
LGPL dual licensed anymore.

Change-Id: Ie1e975b5b546dd31218eef9df472527493fe81e0
2015-05-02 16:52:14 +02:00
Dominik Riebeling
3136465c42 Improve MSVC support in project file.
Enable MSVC specifics by checking QMAKESPEC instead of depending on a qmake
command line switch.

Change-Id: I77f72acd6661d5d7bc5776cc2dc877a11920dc7e
2014-03-23 20:47:45 +01:00
Dominik Riebeling
d85a84fc83 Add msvc qmake config option for building with MSVC.
When building with MSVC we need to add the msvc folder to the include list, and
remove the libraries from the dependencies since they need to get built
separately.

Change-Id: I297787f32495da4541c67bfef549b4d1ad68dd18
2014-03-22 22:20:48 +01:00
Dominik Riebeling
c18908d6bd OS X: update project file for Qt5 support.
- Qt5 doesn't support PPC anymore, so always build for x86 only.
- Qt5 requires the use of the multimedia module (as Windows).

Change-Id: I7d54faffe9d2fb557f55234ba7b81a508d92a38b
2014-03-20 22:26:24 +01:00
Dominik Riebeling
646f74937f Fix compiling with MSVC.
MSVC doesn't understand the gcc specific -Wno-unused-local-typedefs option.
Don't add it in this case.

Change-Id: I7ffb6c0c9c797eaad85975199c386020c464ca7b
2013-11-04 23:32:57 +01:00
Dominik Riebeling
2b054e6135 Fix cutelogger with MSVC.
We're compiling cutelogger directly, not as DLL. Therefore we must not add
__declspec attributes to the header.

Change-Id: I41b87fd4ba34dfbcd0d37245ff1c1f279139bb33
2013-11-04 23:32:57 +01:00
Dominik Riebeling
4d2ce949b3 Use cutelogger for Rockbox Utility internal trace.
Change tracing from qDebug() to use cutelogger, which is available under the
LGPL2.1. This allows to automatically add filename and line number to the log,
and also provides multiple log levels.

Change-Id: I5dbdaf902ba54ea99f07ae10a07467c52fdac910
2013-11-04 23:32:52 +01:00
Dominik Riebeling
11280e20cc Don't pass -Wno-unused-local-typedefs on OS X.
OS X' gcc 4.0 (still used to be able building fat binaries) doesn't ignore that
option and instead errors out.

Change-Id: Id5927ff04dc606480af9add554eeaa75c169510f
2013-06-09 19:45:16 +02:00
Dominik Riebeling
9edc63b0d4 Suppress unused-local-typedefs warning with Qt4.
gcc 4.8 introduces this new warning which some Qt4 headers triggers. Since we
don't want to change Qt simply disable it. The warning doesn't show up when
compiling with Qt5, so only disable it for Qt4.

Change-Id: Ia8fcf0859e0a370def36bc9b43ed4d096a80db28
2013-06-09 16:54:59 +02:00
Dominik Riebeling
7ab7f865dc Restructure options passed to libs Makefile.
Setup AR before checking for ccache to avoid adding ccache to ar. Setup CC and
CFLAGS in the beginning as well. Quote ar and system speex options to fix
building with ccache enabled.

Change-Id: I21714f0849e990abeac72dcda52c81474e090934
2013-05-10 12:02:18 +02:00
Dominik Riebeling
f7d8b2db93 Only pass AR to extralibs Makefile if the compiler is gcc.
We need this only for cross compiling. Trying to figure the compiler prefix
fails if the compiler isn't gcc (i.e. clang), and we only support gcc when
cross compiling.

Change-Id: I822e1b47ec7e9d7e9fdeae8ccf3b8d417a472ef9
2013-05-09 17:23:42 +02:00
Dominik Riebeling
8a1cd81b3a Move building libraries to separate Makefile.
Previously several additional rules were added by qmake to build the required
libraries. This has a couple of problems on Windows, requiring the use of a
msys shell.

Additional variables are passed as environment variables. Windows doesn't
understand this. Passing the variables via make command line argument works but
make won't be able to change those variables anymore, breaking things. Use
intermediate variables passed via make command line that are then exported by
the called Makefile. This doesn't work in the generated Makefile since the
export lines must not be part of a rule.

Also cleans up the project file a bit.

Change-Id: Iaffb059ce8bafe17a35bd1e0a74ae7acd966c138
2013-05-04 21:41:50 +02:00
Dominik Riebeling
891351db60 Fix Qt5 / MinGW problems.
Add missing multimedia module and update some includes.

Change-Id: I98c65c4f2e21e6a63d552669468b1da313520499
2013-04-04 22:42:22 +02:00
Dominik Riebeling
13c5c463d0 Update project file for Qt5 compatibility.
Qt5 splits widgets out of the QtGui to a new QtWidgets module.

Change-Id: I35c6437a2e69c25b90989611a683855dfe31da80
2013-01-27 20:11:17 +01:00
Dominik Riebeling
45e5b05574 Windows: always define UNICODE.
Change-Id: Id188cc03118d7dd769d838f8481e44ba31406dbf
2012-05-14 23:39:17 +02:00
Dominik Riebeling
8bdecac0b0 Don't assume the compiler to be gcc / g++.
When setting up qmake to use ccache keep using the compiler as defined in the
qmakespec instead of assuming it always to be gcc / g++.

Change-Id: I00ce32158ca4a5d67517347cae2e86b77051b3c9
2012-04-28 16:49:09 +02:00
Dominik Riebeling
f7fdf13468 Move manual tab contents to separate widget.
Create a new widget which holds the contents of the manual tab and its logic.
Unify its display / download code. Fixes FS#12587, which was caused by
duplicated code.

Change-Id: I5721d2a95ebeaf80481c1fd149eda22cf1328501
2012-02-14 21:10:54 +01:00
Dominik Riebeling
3e0f2b3e1c Use relative paths to quazip includes.
Shorten the include list a bit by using relative paths.

Change-Id: I91fa7b292179c9f8cd0c257ef9b8d26bca34963b
2012-01-29 22:55:18 +01:00
Dominik Riebeling
c6dcec4e0d Update OS X library building.
- As done with libucl and librbspeex, create universal libraries using ar
  instead of building twice and using lipo. This notably simplifies things.
- Allow overwriting the compiler via command line. This is required for
  building on OS X.
- Update Rockbox Utility to the changed library rules. Fixes building which was
  broken by the previous Makefile changes.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31588 a1c6a512-1295-4272-9138-f99709370657
2012-01-05 22:26:08 +00:00
Dominik Riebeling
61f999a16e Rockbox Utility: add support for mkimxboot bootloader.
Reworked version of FS#12402 by Jean-Louis Biasini.

Since the mkimxboot process takes quite a while which blocks the UI it has been
adjusted to perform the actual firmware patching in a separate process. Various
other small changes have been made to make it fit better into Rockbox Utility's
dialogs / messages and update the code to latest changes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31580 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 19:19:02 +00:00
Dominik Riebeling
97ac4c0e34 Rockbox Utility: update building libs.
- Build libs in a libs/ folder below the build folder. This makes it easier to
  remove them when cleaning the build directory.
- Pass flags via environment instead as parameters to make. Hopefully fixes
  problems when using QtCreator on Windows.
- Respect silent config option when calling the lib Makefiles.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31525 a1c6a512-1295-4272-9138-f99709370657
2012-01-02 16:59:29 +00:00
Dominik Riebeling
13b2f53813 Rename libchinachip to libchinachippatcher.
Use the same name for output file / library and folder to simplify
dependencies.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31334 a1c6a512-1295-4272-9138-f99709370657
2011-12-16 21:34:48 +00:00
Dominik Riebeling
8be58fd8ec Rockbox Utility: use libsansapatcher.
Instead of building sansapatcher sources directly build and use the library.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31329 a1c6a512-1295-4272-9138-f99709370657
2011-12-16 20:10:36 +00:00
Dominik Riebeling
d992536285 Rockbox Utility: use libipodpatcher.
Instead of building the sources directly build and link libipodpatcher.a as
done for other tools.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31326 a1c6a512-1295-4272-9138-f99709370657
2011-12-16 19:34:18 +00:00
Dominik Riebeling
911a355d76 Pass version when building libmktccboot for Rockbox Utility.
On OS X if no version is passed a string containing a space gets generated in
some situation, which will break building. Explicitly set version to some known
string as done for other libs.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31262 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 22:24:41 +00:00
Dominik Riebeling
0d4af186c7 Rockbox Utility: pass BUILD_DIR to libs Makefiles.
Pass a subdirectory of the build folder as BUILD_DIR to the called Makefiles.
Not all do respect the value yet.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31260 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 22:00:23 +00:00
Dominik Riebeling
16f48e8ebc Rockbox Utility: disable some pointless warnings when building with VS.
Visual Studio warns about the usage of some standard library functions (like
sprintf) as part of the SDL. Since we won't change using this functions for at
least portability reasons we really don't need to know about them.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31170 a1c6a512-1295-4272-9138-f99709370657
2011-12-07 20:13:14 +00:00
Dominik Riebeling
7de4f64bb6 Rockbox Utility: build chinachippatcher as library.
Update the chinachip Makefile based on the mkamsboot one, build and link as
library for Rockbox Utility.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31117 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 09:44:21 +00:00
Dominik Riebeling
fd5f16c070 Consolidate libraries list in project file a bit.
Instead of having to mention each library several times (extra targets, target
dependencies, linker flags) create a list of libraries we build directly and
create all other lists from them. Note that libraries get processed in the
order of the list, which is important for linking order. As a result libucl
needs to come last.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31116 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 09:41:48 +00:00
Dominik Riebeling
834f18b6c7 Rockbox Utility: allow building for 32bit on 64bit Linux.
When building the linked libraries pass the machine flag as well. For now add
them to the compiler variable directly, should go via CFLAGS later.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30868 a1c6a512-1295-4272-9138-f99709370657
2011-10-30 15:54:39 +00:00
Dominik Riebeling
c7c657ca92 Prevent unnecessary rebuilding of libs.
- When building for Rockbox Utility the called Makefiles would rebuild the libs
  every time. Change dependencies a bit to allow make to properly detect if the
  lib is already up to date.
- Remove dependency on output folder in some cases to avoid unnecessary
  rebuilds.
- Add standard Rockbox header to files lacking it.
- Make make calls from qmake silent.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30608 a1c6a512-1295-4272-9138-f99709370657
2011-09-26 20:51:23 +00:00
Dominik Riebeling
55f4bf9dfd Rockbox Utility: use libusb-1.0 by default.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30275 a1c6a512-1295-4272-9138-f99709370657
2011-08-09 22:00:10 +00:00
Dominik Riebeling
99408dd45e Add custom delegate for showing the mountpoint combo box entries.
The delegate will be used for the dropdown list and show both mountpoint (left
aligned) and label / size information (right aligned). This improves
readability compared to the previous implementation. Also, the mountpoint
itself is now the text of the combo box and the additional information is in
the Qt::UserRole to avoid having to handle a user entered mountpoint separately
(since previously the mountpoint was stored in Qt::UserRole, but an edited item
would have the value in Qt::TextRole).

Disable editing the combo box entry for release builds, it shouldn't be needed
by users.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30144 a1c6a512-1295-4272-9138-f99709370657
2011-07-16 22:08:03 +00:00
Dominik Riebeling
8c1d114dcf Rockbox Utility: Replace OSDaB Zip with QuaZip.
This change fixes problems with zip files created with newer zip utilities (a
known issue is the iLike theme). QuaZip also allows better feedback during
operations without changing the imported code. Additionally Rockbox Utility and
the Theme Editor are now both using QuaZip; currently Rockbox Utility uses a
copy of the sources, merging them later is planned.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29645 a1c6a512-1295-4272-9138-f99709370657
2011-03-25 22:16:12 +00:00
Dominik Riebeling
9946def79d Don't link libz explicitly on Windows.
On Windows Qt already includes libz. Since the Qt SDK comes without a separate
libz linking it explicitly fails. Also, if libz is installed via MinGW linking
it explicitly will clash with the libz functions in Qt.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29512 a1c6a512-1295-4272-9138-f99709370657
2011-03-03 19:31:26 +00:00
Dominik Riebeling
e1b1183f40 Tweak Makefiles a bit to allow cross compiling Rockbox Utility.
- pass AR to the lib Makefiles to make sure the correct one gets used.
- create an archive index for archives.
- simplify ucl Makefile a bit.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28883 a1c6a512-1295-4272-9138-f99709370657
2010-12-23 18:59:58 +00:00
Dominik Riebeling
7f6c271bad Set APPVERSION for libmkamsboot and libmkmpioboot.
This avoids an ugly "file not found" error for version.sh when building with
deploy.py since the latter doesn't retrieve version.sh. Doing so would be
pointless since the export doesn't know about the version, and the svn version
string isn't used when building with Rockbox Utility.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28882 a1c6a512-1295-4272-9138-f99709370657
2010-12-23 18:59:41 +00:00
Dominik Riebeling
271441eb9d MinGW: prefer C99 compliance by using replacement implementations.
This addresses several warnings caused by format modifiers that are not
supported by MSVCRT. MinGW provides replacement functions since mingw-runtime
3.15 so use them. See also
http://article.gmane.org/gmane.comp.gnu.mingw.user/27539/



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28735 a1c6a512-1295-4272-9138-f99709370657
2010-12-05 15:24:10 +00:00
Dominik Riebeling
770505a49a Link libstdc++ and libgcc statically.
Since the current MinGW version behaves differently here explicitly link
libstdc++ and libgcc statically. Avoids dependency to those DLLs.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28152 a1c6a512-1295-4272-9138-f99709370657
2010-09-23 17:53:53 +00:00
Dominik Riebeling
cb20579dcc Escape Backslash and improve version check.
Since Qt 4.7 unescaped backslashes are deprecated so escape it. Change
the order of the version check message to make sure it gets displayed.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28149 a1c6a512-1295-4272-9138-f99709370657
2010-09-23 16:42:01 +00:00
Dominik Riebeling
40a6aef0c3 Implement USB VID / PID retrieval using IOKit on OS X.
Instead of using libusb as wrapper query the USB IDs via IOKit. Since libusb is
only used for that this means that it's no longer necessary on OS X.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28001 a1c6a512-1295-4272-9138-f99709370657
2010-09-05 18:19:23 +00:00
Dominik Riebeling
d71d537b17 Don't search for libspeex on Windows and Mac.
Make sure to not try to dynamically link libspeex on Mac, since it's not a
standard library, and application bundles aren't statically linked anyway.
Remove looking up libspeex on Windows since it's not a standard library there
either. Don't search for libspeex multiple times but instead pass it to the
librbspeex Makefile.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27999 a1c6a512-1295-4272-9138-f99709370657
2010-09-05 10:27:39 +00:00
Dominik Riebeling
81bce3b5b3 Add -config intel option to allow building for Intel targets only on Mac.
This doesn't change building of the used libraries, so librbspeex etc. are
still built as universal libraries. Building for Intel also targets 10.5 and up
instead of 10.4 and up which is targeted by default. Addresses FS#10938.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27997 a1c6a512-1295-4272-9138-f99709370657
2010-09-05 09:44:49 +00:00