# HG changeset patch # User Matti Hamalainen # Date 1491534247 -10800 # Node ID 402446a7679448b600846e7085bfebc248c4bf02 # Parent b86eb06070ba20db53e4c34c35d76d8793b3ba7d And more build system work. diff -r b86eb06070ba -r 402446a76794 Makefile --- a/Makefile Fri Apr 07 05:40:22 2017 +0300 +++ b/Makefile Fri Apr 07 06:04:07 2017 +0300 @@ -1,26 +1,30 @@ -# -# Configuration settings for Linux and generic UNIX -# See other Makefile.* files for more options. -# +### +### Configuration settings for Linux and generic UNIX +### See other Makefile.* files for more options. +### # Miscellaneous QT5_PREFIX = BINTOOL_PREFIX = + PREFIX = /usr/local BINPATH = ./ OBJPATH = obj/unix/ EXEEXT = # Compiler flags and linker flags -DEFINES = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB -INCPATH = -I. \ - -I/usr/include/x86_64-linux-gnu/qt5 \ - -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets \ - -I/usr/include/x86_64-linux-gnu/qt5/QtGui \ - -I/usr/include/x86_64-linux-gnu/qt5/QtSql \ - -I/usr/include/x86_64-linux-gnu/qt5/QtCore \ - -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 +DEFINES = +INCPATH = -I. `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets Qt5Sql` + +CFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC +CXXFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC +LDFLAGS += -Wl,-O1 +LIBS += `pkg-config --libs Qt5Core Qt5Gui Qt5Widgets Qt5Sql` + +APP_DEPS = + +# Qt tools QT_RCC = rcc QT_MOC = moc @@ -29,10 +33,4 @@ QT_UIC = uic QT_UIC_FLAGS = -CFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC -CXXFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC -LDFLAGS += -Wl,-O1 -LIBS += -L/usr/X11R6/lib64 -lQt5Widgets -lQt5Gui -lQt5Sql -lQt5Core -lGL -lpthread - - include Makefile.gen diff -r b86eb06070ba -r 402446a76794 Makefile.cross-mingw-win32 --- a/Makefile.cross-mingw-win32 Fri Apr 07 05:40:22 2017 +0300 +++ b/Makefile.cross-mingw-win32 Fri Apr 07 06:04:07 2017 +0300 @@ -1,6 +1,6 @@ -# -# For win32 version cross-compilation with MinGW suite @ Linux -# +### +### For win32 version cross-compilation with MinGW suite @ Linux +### # Miscellaneous QT5_PREFIX ?= /misc/packages/qt5-src/qtbase @@ -11,7 +11,7 @@ EXEEXT = .exe # Compiler flags and linker flags -DEFINES = -DUNICODE -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN +DEFINES = -DUNICODE -DQT_NEEDS_QMAIN INCPATH = -I. \ -I$(QT5_PREFIX)/include \ -I$(QT5_PREFIX)/include/QtWidgets \ @@ -20,14 +20,6 @@ -I$(QT5_PREFIX)/include/QtCore \ -I$(QT5_PREFIX)/mkspecs/win32-g++ -QT_RCC = $(QT5_PREFIX)/bin/rcc - -QT_MOC = $(QT5_PREFIX)/bin/moc -QT_MOC_FLAGS = --include $(OBJPATH)/moc_predefs.h - -QT_UIC = $(QT5_PREFIX)/bin/uic -QT_UIC_FLAGS = - CFLAGS += -pipe -fno-keep-inline-dllexport -O2 -Wall -Wextra CXXFLAGS += -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads LDFLAGS += -Wl,-s -Wl,-subsystem,windows -mthreads @@ -39,6 +31,18 @@ $(QT5_PREFIX)/lib/libQt5Sql.a \ $(QT5_PREFIX)/lib/libQt5Core.a +APP_DEPS = resource.o + +# Qt tools +QT_RCC = $(QT5_PREFIX)/bin/rcc + +QT_MOC = $(QT5_PREFIX)/bin/moc +QT_MOC_FLAGS = --include moc_predefs.h +QT_MOC_RULES = moc_predefs.h + +QT_UIC = $(QT5_PREFIX)/bin/uic +QT_UIC_FLAGS = + + include Makefile.gen - \ No newline at end of file diff -r b86eb06070ba -r 402446a76794 Makefile.gen --- a/Makefile.gen Fri Apr 07 05:40:22 2017 +0300 +++ b/Makefile.gen Fri Apr 07 06:04:07 2017 +0300 @@ -1,4 +1,8 @@ +### +### Main build file +### +# Tools CC = $(BINTOOL_PREFIX)gcc CXX = $(BINTOOL_PREFIX)g++ AR = $(BINTOOL_PREFIX)ar @@ -9,37 +13,38 @@ MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p +# Common defines +DEFINES += -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB +# Application stuff APP_BIN=$(BINPATH)Syntilista$(EXEEXT) APP_OBJS=main.o qrc_Syntilista.o moc_main.o -APP_VERSION= +APP_VERSION := $(shell cat VERSION) +comma:= , +APP_VERSION_COM := $(subst .,$(comma),$(APP_VERSION)) +CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" LOGO_SVG ?= kampuscafe4.svg ICON_PNGS = icon-16.png icon-32.png icon-48.png icon-64.png +# And target lists TARGETS = $(APP_BIN) NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) -NOINST_TARGETS += qrc_Syntilista.cpp -# moc_main.cpp +NOINST_TARGETS += -## -## Version strings -## -APP_VERSION := $(shell cat VERSION) -comma:= , -APP_VERSION_COM := $(subst .,$(comma),$(NN_VERSION)) -CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" - - -## -## Target rules -## +### +### Target rules +### all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) -moc_%.cpp: %.h +moc_predefs.h: + @echo "" > $(OBJPATH)dummy.cpp + @$(CXX) $(CXXFLAGS) -dM -E -o $@ $(OBJPATH)dummy.cpp + +moc_%.cpp: %.h $(QT_MOC_RULES) @echo " Qt::MOC $@ $<" @$(QT_MOC) $(DEFINES) $(QT_MOC_FLAGS) $(INCPATH) $< -o $@ @@ -61,17 +66,16 @@ @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< -### -### Windows specific targets -### -$(OBJPATH)moc_predefs.h: $(QT5_PREFIX)/mkspecs/features/data/dummy.cpp - @$(CXX) $(CXXFLAGS) -dM -E -o $@ $< -resource.rc: resource.rc.in $VERSION - @sed -e "s/@VERSION@/$(APP_VERSION)/g;s/@VERSION_COM@/$(APP_VERSION_COM)/g;s#@EXE@#$(notdir $(APP_BIN))#g" < $< > $@ +### +### Windows specific rules +### +resource.rc: resource.rc.in icon.ico VERSION + @sed -e "s/@APP_VERSION@/$(APP_VERSION)/g;s/@APP_VERSION_COM@/$(APP_VERSION_COM)/g;s#@APP_EXE@#$(notdir $(APP_BIN))#g" < $< > $@ -resource.o: resource.rc - $(WINDRES) $< -O coff -o $@ +%.o: %.rc + @echo " WINDRES $<" + @$(WINDRES) $< -O coff -o $@ ### @@ -83,8 +87,8 @@ logo.png: $(LOGO_SVG) inkscape --export-area-page -w 300 -h 280 -e "$@" "$<" -Syntilista.ico: $(ICON_PNGS) - convert $< $+ +icon.ico: $(ICON_PNGS) + convert $< $@ qrc_Syntilista.cpp: Syntilista.qrc logo.png $(ICON_PNGS) @echo " Qt:RCC $@ $<" @@ -95,14 +99,14 @@ @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< -$(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) +$(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) $(APP_DEPS) @echo " LINK $@" @$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS) -## -## Special targets -## +### +### Special targets +### clean: $(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o diff -r b86eb06070ba -r 402446a76794 VERSION --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VERSION Fri Apr 07 06:04:07 2017 +0300 @@ -0,0 +1,1 @@ +0.3 diff -r b86eb06070ba -r 402446a76794 build-win32.sh --- a/build-win32.sh Fri Apr 07 05:40:22 2017 +0300 +++ b/build-win32.sh Fri Apr 07 06:04:07 2017 +0300 @@ -3,9 +3,8 @@ INSTALL_WINE="$HOME/.wine/drive_c/Syntilista/" QT5PATH="/misc/packages/qt5-src/qtbase/" -BUILDPATH="release/" +BUILDPATH="win32/" MINGWPATH="/usr/lib/gcc/i686-w64-mingw32/6.3-win32/" -QMAKE="$QT5PATH/bin/qmake" do_cpinstall() { @@ -40,20 +39,13 @@ done cp -f "$BUILDPATH/Syntilista.exe" "$TARGET" + return 0 } -if test ! -e "$QMAKE"; then - echo "ERROR: $QMAKE not found." - exit 1 -fi -$QMAKE +### Create cross-building makefiles +make -f Makefile.cross-mingw-win32 QT5_PREFIX="$QT5PATH" BINPATH="$BUILDPATH" -#make -f Makefile.Release clean -make -f Makefile.Release - -do_install "$INSTALL_USB" -rm -f "$INSTALL_USB/syntilista.sqlite3" +### Install to targets +do_install "$INSTALL_USB" && rm -f "$INSTALL_USB/syntilista.sqlite3" do_install "$INSTALL_WINE" - -qmake diff -r b86eb06070ba -r 402446a76794 icon-64.png Binary file icon-64.png has changed diff -r b86eb06070ba -r 402446a76794 logo.png Binary file logo.png has changed diff -r b86eb06070ba -r 402446a76794 resource.rc.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resource.rc.in Fri Apr 07 06:04:07 2017 +0300 @@ -0,0 +1,20 @@ +MAINICON ICON "icon.ico" +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION @APP_VERSION_COM@,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "TNSP" + VALUE "FileDescription", "Cafe Kampus Syntilista" + VALUE "FileVersion", "1.0" + VALUE "InternalName", "Syntilista" + VALUE "LegalCopyright", "(C) Copyright 2017 Tecnic Software productions" + VALUE "OriginalFilename", "@APP_EXE@" + VALUE "ProductName", "Syntilista" + VALUE "ProductVersion", "@APP_VERSION@" + END + END +END