changeset 48:200ec310660a

Begin revamp of the buildsystem, don't use qmake anymore.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 07 Apr 2017 05:11:40 +0300
parents 08c0d5116e82
children b86eb06070ba
files Makefile Makefile.cross-mingw-win32 Makefile.gen Syntilista.pro
diffstat 4 files changed, 178 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Fri Apr 07 05:11:40 2017 +0300
@@ -0,0 +1,38 @@
+#
+# 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
+
+QT_RCC = rcc
+
+QT_MOC = moc
+QT_MOC_FLAGS =
+
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.cross-mingw-win32	Fri Apr 07 05:11:40 2017 +0300
@@ -0,0 +1,56 @@
+#
+# For win32 version cross-compilation with MinGW suite @ Linux
+#
+
+# Miscellaneous
+QT5_PREFIX = /misc/packages/qt5-src/qtbase
+BINTOOL_PREFIX = i686-w64-mingw32-
+PREFIX =
+BINPATH = win32/
+OBJPATH = obj/win32/
+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
+INCPATH = -I. \
+	-I$(QT5_PREFIX)/include \
+	-I$(QT5_PREFIX)/include/QtWidgets \
+	-I$(QT5_PREFIX)/include/QtGui \
+	-I$(QT5_PREFIX)/include/QtSql \
+	-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
+LIBS = -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 \
+	-L$(QT5_PREFIX)/lib $(QT5_PREFIX)/lib/libqtmain.a \
+	-lshell32 \
+	$(QT5_PREFIX)/lib/libQt5Widgets.a \
+	$(QT5_PREFIX)/lib/libQt5Gui.a \
+	$(QT5_PREFIX)/lib/libQt5Sql.a \
+	$(QT5_PREFIX)/lib/libQt5Core.a 
+
+
+include Makefile.gen
+
+###
+### 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@/$(NN_VERSION)/g;s/@VERSION_COM@/$(NN_VERSION_COM)/g;s/@ICON@/$(ICON)/g;s#@EXE@#$(notdir $(NNCHAT_BIN))#g" < $< > $@
+
+#resource.o: resource.rc
+#	$(WINDRES) $< -O coff -o $@
+	
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.gen	Fri Apr 07 05:11:40 2017 +0300
@@ -0,0 +1,84 @@
+
+CC = $(BINTOOL_PREFIX)gcc
+CXX = $(BINTOOL_PREFIX)g++
+AR = $(BINTOOL_PREFIX)ar
+RANLIB = $(BINTOOL_PREFIX)ranlib
+INSTALL ?= install
+MKDIR ?= mkdir
+MKDIR_P ?= $(MKDIR) -p
+
+
+SYNTILISTA_BIN=$(BINPATH)Syntilista$(EXEEXT)
+SYNTILISTA_OBJS=main.o qrc_Syntilista.o moc_main.o
+
+LOGO_SVG ?= kampuscafe4.svg
+
+TARGETS = $(SYNTILISTA_BIN)
+NOBUILD_TARGETS += $(OBJPATH) $(BINPATH)
+NOINST_TARGETS += qrc_Syntilista.cpp
+# moc_main.cpp
+
+
+
+##
+## Target rules
+##
+all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)
+
+
+moc_%.cpp: %.h
+	@echo " Qt::MOC $@ $<"
+	@$(QT_MOC) $(DEFINES) $(QT_MOC_FLAGS) $(INCPATH) $< -o $@
+
+ui_%.h: %.ui
+	@echo " Qt:UIC $@ $<"
+	@$(QT_UIC) $(QT_UIC_FLAGS) $< -o $@
+
+
+$(OBJPATH) $(BINPATH):
+	@echo " MKDIR $@"
+	@$(MKDIR_P) $@
+
+$(OBJPATH)%.o: %.cpp %.h
+	@echo " CXX $@"
+	@$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
+
+$(OBJPATH)%.o: %.cpp
+	@echo " CXX $@"
+	@$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
+
+
+##
+## Application rules
+##
+icon-%.png: $(LOGO_SVG)
+	inkscape --export-area-page -w $(patsubst icon-%.png,%,$@) -h $(patsubst icon-%.png,%,$@) -e "$@" "$<"
+
+logo.png: $(LOGO_SVG)
+	inkscape --export-area-page -w 300 -h 280 -e "$@" "$<"
+
+
+qrc_Syntilista.cpp: Syntilista.qrc logo.png icon-16.png icon-32.png icon-48.png icon-64.png 
+	@echo " Qt:RCC $@ $<"
+	@$(QT_RCC) -name "Syntilista" $< -o $@
+
+$(OBJPATH)main.o: main.cpp main.h ui_mainwindow.h ui_editperson.h
+	@echo " CXX $@"
+	@$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
+
+
+$(SYNTILISTA_BIN): $(addprefix $(OBJPATH),$(SYNTILISTA_OBJS))
+	@echo " LINK $@"
+	@$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS)
+
+
+##
+## Special targets
+##
+clean:
+	$(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o
+
+distclean: clean
+	$(RM) *~ core *.core
+
+.PHONY: clean distclean all
--- a/Syntilista.pro	Thu Apr 06 16:03:13 2017 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#-------------------------------------------------
-#
-# Project created by QtCreator 2017-03-22T15:22:46
-#
-#-------------------------------------------------
-
-QT       += core gui sql
-
-greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
-
-TARGET = Syntilista
-TEMPLATE = app
-
-# The following define makes your compiler emit warnings if you use
-# any feature of Qt which as been marked as deprecated (the exact warnings
-# depend on your compiler). Please consult the documentation of the
-# deprecated API in order to know how to port your code away from it.
-DEFINES += QT_DEPRECATED_WARNINGS
-
-# You can also make your code fail to compile if you use deprecated APIs.
-# In order to do so, uncomment the following line.
-# You can also select to disable deprecated APIs only up to a certain version of Qt.
-#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
-
-
-SOURCES += main.cpp
-
-HEADERS  += main.h
-
-FORMS    += mainwindow.ui \
-    editperson.ui
-
-RESOURCES += \
-    Syntilista.qrc