qt5: avoid build of qt libs as target dep

Issue #5325
This commit is contained in:
Christian Prochaska 2024-08-27 14:08:36 +02:00 committed by Christian Helmuth
parent 1446da8aec
commit 7f52089eae
46 changed files with 219 additions and 379 deletions

View File

@ -4,11 +4,10 @@ QMAKE_TARGET_BINARIES = mixer_gui_qt
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets
LIBS = base libc libm mesa stdcxx qoost $(QT5_PORT_LIBS) LIBS = qt5_qmake base libc libm mesa stdcxx qoost
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk) QT5_COMPONENT_LIB_SO =
QT5_GENODE_LIBS_APP += ld.lib.so QT5_GENODE_LIBS_APP += ld.lib.so
QT5_GENODE_LIBS_APP := $(filter-out qt5_component.lib.so,$(QT5_GENODE_LIBS_APP))
qmake_prepared.tag: qmake_root/lib/ld.lib.so qmake_prepared.tag: $(addprefix build_dependencies/lib/,$(QT5_GENODE_LIBS_APP))

View File

@ -1,13 +1,12 @@
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets
LIBS = base libc libm mesa stdcxx qoost $(QT5_PORT_LIBS) LIBS = qt5_qmake base libc libm mesa stdcxx qoost
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk) QT5_COMPONENT_LIB_SO =
QT5_GENODE_LIBS_APP += ld.lib.so QT5_GENODE_LIBS_APP += ld.lib.so
QT5_GENODE_LIBS_APP := $(filter-out qt5_component.lib.so,$(QT5_GENODE_LIBS_APP))
qmake_prepared.tag: qmake_root/lib/ld.lib.so qmake_prepared.tag: $(addprefix build_dependencies/lib/,$(QT5_GENODE_LIBS_APP))
INC_DIR += $(PRG_DIR)/.. INC_DIR += $(PRG_DIR)/..

View File

@ -0,0 +1,87 @@
QT_TOOLS_DIR = /usr/local/genode/tool/23.05
ifeq ($(filter-out $(SPECS),arm),)
QT_PLATFORM = genode-arm-g++
else ifeq ($(filter-out $(SPECS),arm_64),)
QT_PLATFORM = genode-aarch64-g++
else ifeq ($(filter-out $(SPECS),x86_32),)
QT_PLATFORM = genode-x86_32-g++
else ifeq ($(filter-out $(SPECS),x86_64),)
QT_PLATFORM = genode-x86_64-g++
else
$(error Error: unsupported platform)
endif
ifeq ($(CONTRIB_DIR),)
QT_DIR = $(call select_from_repositories,src/lib/qt5)
QT_API_DIR = $(call select_from_repositories,mkspecs)/..
abi_symbol_path = $(wildcard $(call select_from_repositories,lib/symbols/$1))
else
QT_PORT_DIR := $(call select_from_ports,qt5)
QT_DIR = $(QT_PORT_DIR)/src/lib/qt5
QT_API_DIR = $(QT_DIR)/genode/api
abi_symbol_path = $(wildcard $(addprefix $(QT_API_DIR)/lib/symbols/,$1))
endif
ifeq ($(VERBOSE),)
MAKE_VERBOSE="1"
else
QT6_OUTPUT_FILTER = > /dev/null
endif
#
# Genode libraries to be linked to Qt applications and libraries
#
QT5_COMPONENT_LIB_SO ?= qt5_component.lib.so
QT5_GENODE_LIBS_COMMON += libc.lib.so libm.lib.so stdcxx.lib.so
QT5_GENODE_LIBS_APP += $(QT5_GENODE_LIBS_COMMON) $(QT5_COMPONENT_LIB_SO)
QT5_GENODE_LIBS_SHLIB += $(QT5_GENODE_LIBS_COMMON)
#
# common 'build_dependencies' rules
#
build_dependencies:
$(VERBOSE)mkdir -p $@
build_dependencies/include: build_dependencies
$(VERBOSE)mkdir -p $@
$(VERBOSE)ln -snf $(QT_API_DIR)/include/* $@/
build_dependencies/lib: build_dependencies
$(VERBOSE)mkdir -p $@
build_dependencies/lib/%.lib.so: build_dependencies/lib
$(VERBOSE)ln -sf $(BUILD_BASE_DIR)/var/libcache/$*/$*.abi.so $@
build_dependencies/lib/%.lib.a: build_dependencies/lib
$(VERBOSE)ln -sf $(BUILD_BASE_DIR)/var/libcache/$*/$*.lib.a $@
#
# rules for generating .lib.so files from port symbol files
#
lib_name = $(notdir $(1:.lib.so=))
abi_name = $(notdir $(1:.abi.so=))
abi_path = build_dependencies/abi/$(call abi_name,$1)/$(call abi_name,$1).abi.so
so_path = build_dependencies/lib/$(call lib_name,$1).lib.so
BUILD_DEPENDENCIES_QT5_SO_FILES := $(foreach L,$(QT5_PORT_LIBS),$(call so_path,$L))
BUILD_DEPENDENCIES_QT5_ABI_FILES := $(foreach L,$(QT5_PORT_LIBS),$(call abi_path,$L))
$(BUILD_DEPENDENCIES_QT5_ABI_FILES):
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)$(MAKE) -C $(dir $@) -f $(BASE_DIR)/mk/abi.mk \
SYMBOLS=$(call abi_symbol_path,$(call abi_name,$@)) \
LIB=$(call abi_name,$@) \
BUILD_BASE_DIR=$(BUILD_BASE_DIR) \
SHELL=$(SHELL)
$(BUILD_DEPENDENCIES_QT5_SO_FILES): $(BUILD_DEPENDENCIES_QT5_ABI_FILES)
.PHONY: qt5_so_files
qt5_so_files: $(BUILD_DEPENDENCIES_QT5_SO_FILES)
$(VERBOSE)for l in $(QT5_PORT_LIBS); do \
ln -sf ../abi/$$l/$$l.abi.so build_dependencies/lib/$$l.lib.so; done

View File

@ -4,47 +4,16 @@
# CMAKE_LISTS_DIR: path to the CMakeLists.txt file # CMAKE_LISTS_DIR: path to the CMakeLists.txt file
# CMAKE_TARGET_BINARIES binaries to be stripped and linked into 'bin' and 'debug' directories # CMAKE_TARGET_BINARIES binaries to be stripped and linked into 'bin' and 'debug' directories
# QT5_PORT_LIBS: Qt5 libraries used from port (for example libQt5Core) # QT5_PORT_LIBS: Qt5 libraries used from port (for example libQt5Core)
# QT5_COMPONENT_LIB_SO: if defined empty, disables linking with qt5_component.lib.so
# #
QT_TOOLS_DIR = /usr/local/genode/tool/23.05 include $(call select_from_repositories,lib/import/import-qt5.inc)
ifeq ($(filter-out $(SPECS),arm),)
QT_PLATFORM = genode-arm-g++
else ifeq ($(filter-out $(SPECS),arm_64),)
QT_PLATFORM = genode-aarch64-g++
else ifeq ($(filter-out $(SPECS),x86_32),)
QT_PLATFORM = genode-x86_32-g++
else ifeq ($(filter-out $(SPECS),x86_64),)
QT_PLATFORM = genode-x86_64-g++
else
$(error Error: unsupported platform)
endif
ifeq ($(CONTRIB_DIR),)
QT_DIR = $(call select_from_repositories,src/lib/qt5)
QT_API_DIR = $(call select_from_repositories,mkspecs)/..
else
QT_PORT_DIR := $(call select_from_ports,qt5)
QT_DIR = $(QT_PORT_DIR)/src/lib/qt5
QT_API_DIR = $(QT_DIR)/genode/api
endif
ifneq ($(VERBOSE),)
QT5_OUTPUT_FILTER = > /dev/null
endif
#
# Genode libraries to be linked to Qt applications and libraries
#
QT5_GENODE_LIBS_APP = libc.lib.so libm.lib.so stdcxx.lib.so qt5_component.lib.so
QT5_GENODE_LIBS_SHLIB = libc.lib.so libm.lib.so stdcxx.lib.so
# #
# flags to be passed to CMake # flags to be passed to CMake
# #
GENODE_CMAKE_CFLAGS = \ GENODE_CMAKE_CFLAGS += \
-D__FreeBSD__=12 \ -D__FreeBSD__=12 \
-D__GENODE__ \ -D__GENODE__ \
-ffunction-sections \ -ffunction-sections \
@ -53,9 +22,9 @@ GENODE_CMAKE_CFLAGS = \
$(CC_MARCH) \ $(CC_MARCH) \
$(CC_OPT_PIC) \ $(CC_OPT_PIC) \
$(filter-out -I.,$(INCLUDES)) \ $(filter-out -I.,$(INCLUDES)) \
-I$(CURDIR)/cmake_root/include/QtCore/spec/$(QT_PLATFORM) -I$(CURDIR)/build_dependencies/include/QtCore/spec/$(QT_PLATFORM)
GENODE_CMAKE_LFLAGS_APP = \ GENODE_CMAKE_LFLAGS_APP += \
$(addprefix $(LD_OPT_PREFIX),$(LD_MARCH)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_MARCH)) \
$(addprefix $(LD_OPT_PREFIX),$(LD_OPT_GC_SECTIONS)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_OPT_GC_SECTIONS)) \
$(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \
@ -67,7 +36,7 @@ GENODE_CMAKE_LFLAGS_APP = \
-Wl,--eh-frame-hdr \ -Wl,--eh-frame-hdr \
-Wl,-rpath-link=. \ -Wl,-rpath-link=. \
-Wl,-T -Wl,$(LD_SCRIPT_DYN) \ -Wl,-T -Wl,$(LD_SCRIPT_DYN) \
-L$(CURDIR)/cmake_root/lib \ -L$(CURDIR)/build_dependencies/lib \
-Wl,--whole-archive \ -Wl,--whole-archive \
-Wl,--start-group \ -Wl,--start-group \
$(addprefix -l:,$(QT5_GENODE_LIBS_APP)) \ $(addprefix -l:,$(QT5_GENODE_LIBS_APP)) \
@ -75,7 +44,7 @@ GENODE_CMAKE_LFLAGS_APP = \
-Wl,--end-group \ -Wl,--end-group \
-Wl,--no-whole-archive -Wl,--no-whole-archive
GENODE_CMAKE_LFLAGS_SHLIB = \ GENODE_CMAKE_LFLAGS_SHLIB += \
$(LD_OPT_NOSTDLIB) \ $(LD_OPT_NOSTDLIB) \
-Wl,-shared \ -Wl,-shared \
-Wl,--eh-frame-hdr \ -Wl,--eh-frame-hdr \
@ -84,7 +53,7 @@ GENODE_CMAKE_LFLAGS_SHLIB = \
$(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \
-Wl,-T -Wl,$(LD_SCRIPT_SO) \ -Wl,-T -Wl,$(LD_SCRIPT_SO) \
$(addprefix $(LD_OPT_PREFIX),--entry=0x0) \ $(addprefix $(LD_OPT_PREFIX),--entry=0x0) \
-L$(CURDIR)/cmake_root/lib \ -L$(CURDIR)/build_dependencies/lib \
-Wl,--whole-archive \ -Wl,--whole-archive \
-Wl,--start-group \ -Wl,--start-group \
$(addprefix -l:,$(QT5_GENODE_LIBS_SHLIB)) \ $(addprefix -l:,$(QT5_GENODE_LIBS_SHLIB)) \
@ -99,61 +68,34 @@ else
GENODE_CMAKE_GL_INCDIRS := $(call select_from_ports,mesa)/include GENODE_CMAKE_GL_INCDIRS := $(call select_from_ports,mesa)/include
endif endif
GENODE_CMAKE_OPENGL_LIBS = $(CURDIR)/cmake_root/lib/mesa.lib.so GENODE_CMAKE_OPENGL_LIBS = $(CURDIR)/build_dependencies/lib/mesa.lib.so
# #
# prepare a directory named 'cmake_root' where CMake can find needed files # prepare a directory named 'build_dependencies' where CMake can find needed files
# #
cmake_root: build_dependencies/bin: build_dependencies
$(VERBOSE)mkdir -p $@
cmake_root/bin: cmake_root
$(VERBOSE)mkdir -p $@ $(VERBOSE)mkdir -p $@
$(VERBOSE)ln -sf $(QT_TOOLS_DIR)/bin/* $@/ $(VERBOSE)ln -sf $(QT_TOOLS_DIR)/bin/* $@/
cmake_root/include: cmake_root build_dependencies/lib/cmake: build_dependencies/lib
$(VERBOSE)mkdir -p $@
$(VERBOSE)ln -snf $(QT_API_DIR)/include/* $@/
cmake_root/lib: cmake_root
$(VERBOSE)mkdir -p $@
cmake_root/lib/cmake: cmake_root/lib
$(VERBOSE)ln -snf $(QT_API_DIR)/lib/cmake $@ $(VERBOSE)ln -snf $(QT_API_DIR)/lib/cmake $@
cmake_root/lib/%.lib.so: cmake_root/lib build_dependencies/mkspecs: build_dependencies
$(VERBOSE)ln -sf $(BUILD_BASE_DIR)/var/libcache/$*/$*.abi.so $@
cmake_root/lib/%.lib.a: cmake_root/lib
$(VERBOSE)ln -sf $(BUILD_BASE_DIR)/var/libcache/$*/$*.lib.a $@
cmake_root/mkspecs: cmake_root
$(VERBOSE)ln -snf $(QT_API_DIR)/mkspecs $@ $(VERBOSE)ln -snf $(QT_API_DIR)/mkspecs $@
cmake_prepared.tag: \ cmake_prepared.tag: \
cmake_root/bin \ build_dependencies/bin \
cmake_root/include \ build_dependencies/include \
cmake_root/lib/cmake \ build_dependencies/lib/cmake \
cmake_root/lib/libc.lib.so \ build_dependencies/lib/libc.lib.so \
cmake_root/lib/libm.lib.so \ build_dependencies/lib/libm.lib.so \
cmake_root/lib/egl.lib.so \ build_dependencies/lib/egl.lib.so \
cmake_root/lib/mesa.lib.so \ build_dependencies/lib/mesa.lib.so \
cmake_root/lib/qt5_component.lib.so \ build_dependencies/lib/qt5_component.lib.so \
cmake_root/lib/stdcxx.lib.so \ build_dependencies/lib/stdcxx.lib.so \
cmake_root/lib/ldso_so_support.lib.a \ build_dependencies/lib/ldso_so_support.lib.a \
cmake_root/mkspecs build_dependencies/mkspecs
# add symlinks for Qt5 libraries listed in the 'QT5_PORT_LIBS' variable
ifeq ($(CONTRIB_DIR),)
$(VERBOSE)for qt5_lib in $(QT5_PORT_LIBS); do \
ln -sf $(BUILD_BASE_DIR)/var/libcache/$${qt5_lib}/$${qt5_lib}.abi.so cmake_root/lib/$${qt5_lib}.lib.so; \
done
else
$(VERBOSE)for qt5_lib in $(QT5_PORT_LIBS); do \
ln -sf $(BUILD_BASE_DIR)/bin/$${qt5_lib}.lib.so cmake_root/lib/; \
done
endif
$(VERBOSE)touch $@ $(VERBOSE)touch $@
.PHONY: build_with_cmake .PHONY: build_with_cmake
@ -161,15 +103,11 @@ endif
# 'make' called by CMake uses '/bin/sh', which does not understand '-o pipefail' # 'make' called by CMake uses '/bin/sh', which does not understand '-o pipefail'
unexport .SHELLFLAGS unexport .SHELLFLAGS
ifeq ($(VERBOSE),) build_with_cmake: cmake_prepared.tag qt5_so_files
CMAKE_MAKE_VERBOSE="1" $(VERBOSE)cmake \
endif -G "Unix Makefiles" \
-DCMAKE_PREFIX_PATH="$(CURDIR)/build_dependencies" \
build_with_cmake: cmake_prepared.tag -DCMAKE_MODULE_PATH="$(CURDIR)/build_dependencies/lib/cmake/Modules" \
$(VERBOSE)CMAKE_PREFIX_PATH="$(CURDIR)/cmake_root" \
cmake \
--no-warn-unused-cli \
-DCMAKE_MODULE_PATH="$(CURDIR)/cmake_root/lib/cmake/Modules" \
-DCMAKE_SYSTEM_NAME="Genode" \ -DCMAKE_SYSTEM_NAME="Genode" \
-DCMAKE_AR="$(AR)" \ -DCMAKE_AR="$(AR)" \
-DCMAKE_C_COMPILER="$(CC)" \ -DCMAKE_C_COMPILER="$(CC)" \
@ -182,10 +120,11 @@ build_with_cmake: cmake_prepared.tag
-DCMAKE_MODULE_LINKER_FLAGS="$(GENODE_CMAKE_LFLAGS_SHLIB)" \ -DCMAKE_MODULE_LINKER_FLAGS="$(GENODE_CMAKE_LFLAGS_SHLIB)" \
-DCMAKE_GL_INCDIRS="$(GENODE_CMAKE_GL_INCDIRS)" \ -DCMAKE_GL_INCDIRS="$(GENODE_CMAKE_GL_INCDIRS)" \
-DCMAKE_OPENGL_LIBS="$(GENODE_CMAKE_OPENGL_LIBS)" \ -DCMAKE_OPENGL_LIBS="$(GENODE_CMAKE_OPENGL_LIBS)" \
--no-warn-unused-cli \
$(CMAKE_LISTS_DIR) \ $(CMAKE_LISTS_DIR) \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
$(VERBOSE)$(MAKE) VERBOSE=$(CMAKE_MAKE_VERBOSE) $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) VERBOSE=$(MAKE_VERBOSE) $(QT5_OUTPUT_FILTER)
# #
# Not every CMake project has an 'install' target, so execute # Not every CMake project has an 'install' target, so execute
@ -193,7 +132,7 @@ build_with_cmake: cmake_prepared.tag
# its path. # its path.
# #
ifneq ($(findstring install/,$(CMAKE_TARGET_BINARIES)),) ifneq ($(findstring install/,$(CMAKE_TARGET_BINARIES)),)
$(VERBOSE)$(MAKE) VERBOSE=$(CMAKE_MAKE_VERBOSE) DESTDIR=install install $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) VERBOSE=$(MAKE_VERBOSE) DESTDIR=install install $(QT5_OUTPUT_FILTER)
endif endif
$(VERBOSE)for cmake_target_binary in $(CMAKE_TARGET_BINARIES); do \ $(VERBOSE)for cmake_target_binary in $(CMAKE_TARGET_BINARIES); do \
@ -205,11 +144,11 @@ endif
ln -sf $(CURDIR)/$${cmake_target_binary}.debug $(PWD)/debug/; \ ln -sf $(CURDIR)/$${cmake_target_binary}.debug $(PWD)/debug/; \
done done
BUILD_ARTIFACTS ?= $(notdir $(CMAKE_TARGET_BINARIES)) BUILD_ARTIFACTS += $(notdir $(CMAKE_TARGET_BINARIES))
# #
# build applications with CMake # build applications with CMake
# #
TARGET ?= $(CMAKE_LISTS_DIR).cmake_target TARGET ?= $(CMAKE_LISTS_DIR).cmake_target
.PHONY: $(TARGET) .PHONY: $(TARGET)
$(TARGET): build_with_cmake $(TARGET): build_with_cmake $(QT5_EXTRA_TARGET_DEPS)

View File

@ -4,48 +4,18 @@
# QMAKE_PROJECT_FILE: path to the qmake project file (for applications with target.mk) # QMAKE_PROJECT_FILE: path to the qmake project file (for applications with target.mk)
# QMAKE_TARGET_BINARIES binaries to be stripped and linked into 'bin' and 'debug' directories # QMAKE_TARGET_BINARIES binaries to be stripped and linked into 'bin' and 'debug' directories
# QT5_PORT_LIBS: Qt5 libraries used from port (for example libQt5Core) # QT5_PORT_LIBS: Qt5 libraries used from port (for example libQt5Core)
# QT5_COMPONENT_LIB_SO: if defined empty, disables linking with qt5_component.lib.so
# #
QT_TOOLS_DIR = /usr/local/genode/tool/23.05 include $(call select_from_repositories,lib/import/import-qt5.inc)
QMAKE = $(QT_TOOLS_DIR)/bin/qmake
ifeq ($(filter-out $(SPECS),arm),) QMAKE = $(QT_TOOLS_DIR)/bin/qmake
QMAKE_PLATFORM = genode-arm-g++
else ifeq ($(filter-out $(SPECS),arm_64),)
QMAKE_PLATFORM = genode-aarch64-g++
else ifeq ($(filter-out $(SPECS),x86_32),)
QMAKE_PLATFORM = genode-x86_32-g++
else ifeq ($(filter-out $(SPECS),x86_64),)
QMAKE_PLATFORM = genode-x86_64-g++
else
$(error Error: unsupported platform)
endif
ifeq ($(CONTRIB_DIR),)
QT_DIR = $(call select_from_repositories,src/lib/qt5)
QT_API_DIR = $(call select_from_repositories,mkspecs)/..
else
QT_PORT_DIR := $(call select_from_ports,qt5)
QT_DIR = $(QT_PORT_DIR)/src/lib/qt5
QT_API_DIR = $(QT_DIR)/genode/api
endif
ifneq ($(VERBOSE),)
QT5_OUTPUT_FILTER = > /dev/null
endif
#
# Genode libraries to be linked to Qt applications and libraries
#
QT5_GENODE_LIBS_APP = libc.lib.so libm.lib.so stdcxx.lib.so qt5_component.lib.so
QT5_GENODE_LIBS_SHLIB = libc.lib.so libm.lib.so stdcxx.lib.so
# #
# flags to be passed to qmake via env.sh and mkspecs/common/genode.conf # flags to be passed to qmake via env.sh and mkspecs/common/genode.conf
# #
GENODE_QMAKE_CFLAGS = \ GENODE_QMAKE_CFLAGS += \
-D__FreeBSD__=12 \ -D__FreeBSD__=12 \
-D__GENODE__ \ -D__GENODE__ \
-ffunction-sections \ -ffunction-sections \
@ -54,9 +24,9 @@ GENODE_QMAKE_CFLAGS = \
$(CC_MARCH) \ $(CC_MARCH) \
$(CC_OPT_PIC) \ $(CC_OPT_PIC) \
$(filter-out -I.,$(INCLUDES)) \ $(filter-out -I.,$(INCLUDES)) \
-I$(CURDIR)/qmake_root/include/QtCore/spec/$(QMAKE_PLATFORM) -I$(CURDIR)/build_dependencies/include/QtCore/spec/$(QT_PLATFORM)
GENODE_QMAKE_LFLAGS_APP = \ GENODE_QMAKE_LFLAGS_APP += \
$(addprefix $(LD_OPT_PREFIX),$(LD_MARCH)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_MARCH)) \
$(addprefix $(LD_OPT_PREFIX),$(LD_OPT_GC_SECTIONS)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_OPT_GC_SECTIONS)) \
$(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \
@ -68,14 +38,14 @@ GENODE_QMAKE_LFLAGS_APP = \
-Wl,--eh-frame-hdr \ -Wl,--eh-frame-hdr \
-Wl,-rpath-link=. \ -Wl,-rpath-link=. \
-Wl,-T -Wl,$(LD_SCRIPT_DYN) \ -Wl,-T -Wl,$(LD_SCRIPT_DYN) \
-L$(CURDIR)/qmake_root/lib \ -L$(CURDIR)/build_dependencies/lib \
-Wl,--whole-archive \ -Wl,--whole-archive \
-Wl,--start-group \ -Wl,--start-group \
$(addprefix -l:,$(QT5_GENODE_LIBS_APP)) \ $(addprefix -l:,$(QT5_GENODE_LIBS_APP)) \
-Wl,--end-group \ -Wl,--end-group \
-Wl,--no-whole-archive -Wl,--no-whole-archive
GENODE_QMAKE_LFLAGS_SHLIB = \ GENODE_QMAKE_LFLAGS_SHLIB += \
$(LD_OPT_NOSTDLIB) \ $(LD_OPT_NOSTDLIB) \
-Wl,-shared \ -Wl,-shared \
-Wl,--eh-frame-hdr \ -Wl,--eh-frame-hdr \
@ -84,7 +54,7 @@ GENODE_QMAKE_LFLAGS_SHLIB = \
$(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \ $(addprefix $(LD_OPT_PREFIX),$(LD_OPT_ALIGN_SANE)) \
-Wl,-T -Wl,$(LD_SCRIPT_SO) \ -Wl,-T -Wl,$(LD_SCRIPT_SO) \
$(addprefix $(LD_OPT_PREFIX),--entry=0x0) \ $(addprefix $(LD_OPT_PREFIX),--entry=0x0) \
-L$(CURDIR)/qmake_root/lib \ -L$(CURDIR)/build_dependencies/lib \
-Wl,--whole-archive \ -Wl,--whole-archive \
-Wl,--start-group \ -Wl,--start-group \
$(addprefix -l:,$(QT5_GENODE_LIBS_SHLIB)) \ $(addprefix -l:,$(QT5_GENODE_LIBS_SHLIB)) \
@ -108,8 +78,8 @@ GENODE_QMAKE_INCDIR_OPENGL := $(call select_from_ports,mesa)/include
GENODE_QMAKE_INCDIR_EGL := $(call select_from_ports,mesa)/include GENODE_QMAKE_INCDIR_EGL := $(call select_from_ports,mesa)/include
endif endif
GENODE_QMAKE_LIBS_OPENGL = $(CURDIR)/qmake_root/lib/mesa.lib.so GENODE_QMAKE_LIBS_OPENGL = $(CURDIR)/build_dependencies/lib/mesa.lib.so
GENODE_QMAKE_LIBS_EGL = $(CURDIR)/qmake_root/lib/egl.lib.so GENODE_QMAKE_LIBS_EGL = $(CURDIR)/build_dependencies/lib/egl.lib.so
# #
# export variables for qmake.conf # export variables for qmake.conf
@ -135,67 +105,43 @@ env.sh:
# #
# prepare a directory named 'qmake_root' where qmake can find needed files # prepare a directory named 'build_dependencies' where qmake can find needed files
# #
qmake_root: build_dependencies/bin: build_dependencies
$(VERBOSE)mkdir -p $@
qmake_root/bin: qmake_root
$(VERBOSE)mkdir -p $@ $(VERBOSE)mkdir -p $@
$(VERBOSE)ln -sf $(QT_TOOLS_DIR)/bin/* $@/ $(VERBOSE)ln -sf $(QT_TOOLS_DIR)/bin/* $@/
qmake_root/include: qmake_root build_dependencies/mkspecs: build_dependencies
$(VERBOSE)mkdir -p $@
$(VERBOSE)ln -snf $(QT_API_DIR)/include/* $@/
qmake_root/lib: qmake_root
$(VERBOSE)mkdir -p $@
qmake_root/lib/%.lib.so: qmake_root/lib
$(VERBOSE)ln -sf $(BUILD_BASE_DIR)/var/libcache/$*/$*.abi.so $@
qmake_root/lib/%.lib.a: qmake_root/lib
$(VERBOSE)ln -sf $(BUILD_BASE_DIR)/var/libcache/$*/$*.lib.a $@
qmake_root/mkspecs: qmake_root
$(VERBOSE)mkdir -p $@ $(VERBOSE)mkdir -p $@
$(VERBOSE)ln -sf $(QT_API_DIR)/mkspecs/* $@/ $(VERBOSE)ln -sf $(QT_API_DIR)/mkspecs/* $@/
$(VERBOSE)rm -f $@/modules $(VERBOSE)rm -f $@/modules
$(VERBOSE)mkdir $@/modules $(VERBOSE)mkdir $@/modules
$(VERBOSE)ln -snf $(QT_API_DIR)/mkspecs/modules/* $@/modules/ $(VERBOSE)ln -snf $(QT_API_DIR)/mkspecs/modules/* $@/modules/
$(VERBOSE)ln -sf $(QMAKE_PLATFORM)/qconfig.pri $@/ $(VERBOSE)ln -sf $(QT_PLATFORM)/qconfig.pri $@/
$(VERBOSE)ln -sf $(QMAKE_PLATFORM)/qmodule.pri $@/ $(VERBOSE)ln -sf $(QT_PLATFORM)/qmodule.pri $@/
qmake_prepared.tag: env.sh \ qmake_prepared.tag: env.sh \
qmake_root/bin \ build_dependencies/bin \
qmake_root/include \ build_dependencies/include \
qmake_root/lib/libc.lib.so \ build_dependencies/lib/libc.lib.so \
qmake_root/lib/libm.lib.so \ build_dependencies/lib/libm.lib.so \
qmake_root/lib/egl.lib.so \ build_dependencies/lib/egl.lib.so \
qmake_root/lib/mesa.lib.so \ build_dependencies/lib/mesa.lib.so \
qmake_root/lib/qt5_component.lib.so \ build_dependencies/lib/qt5_component.lib.so \
qmake_root/lib/stdcxx.lib.so \ build_dependencies/lib/stdcxx.lib.so \
qmake_root/lib/ldso_so_support.lib.a \ build_dependencies/lib/ldso_so_support.lib.a \
qmake_root/mkspecs build_dependencies/mkspecs
# add symlinks for Qt5 libraries listed in the 'QT5_PORT_LIBS' variable
ifeq ($(CONTRIB_DIR),)
$(VERBOSE)for qt5_lib in $(QT5_PORT_LIBS); do \
ln -sf $(BUILD_BASE_DIR)/var/libcache/$${qt5_lib}/$${qt5_lib}.abi.so qmake_root/lib/$${qt5_lib}.lib.so; \
done
else
$(VERBOSE)for qt5_lib in $(QT5_PORT_LIBS); do \
ln -sf $(BUILD_BASE_DIR)/bin/$${qt5_lib}.lib.so qmake_root/lib/; \
done
endif
$(VERBOSE)touch $@ $(VERBOSE)touch $@
.PHONY: build_with_qmake .PHONY: build_with_qmake
build_with_qmake: qmake_prepared.tag build_with_qmake: qmake_prepared.tag qt5_so_files
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -spec build_dependencies/mkspecs/$(QT_PLATFORM) \
-qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
-nocache \
$(QMAKE_PROJECT_FILE) \ $(QMAKE_PROJECT_FILE) \
"CONFIG += force_debug_info" \ "CONFIG += force_debug_info" \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
@ -211,11 +157,11 @@ build_with_qmake: qmake_prepared.tag
ln -sf $(CURDIR)/$${qmake_target_binary}.debug $(PWD)/debug/; \ ln -sf $(CURDIR)/$${qmake_target_binary}.debug $(PWD)/debug/; \
done done
BUILD_ARTIFACTS ?= $(notdir $(QMAKE_TARGET_BINARIES)) BUILD_ARTIFACTS += $(notdir $(QMAKE_TARGET_BINARIES))
# #
# build applications with qmake # build applications with qmake
# #
TARGET ?= $(notdir $(QMAKE_PROJECT_FILE)).qmake_target TARGET ?= $(notdir $(QMAKE_PROJECT_FILE)).qmake_target
.PHONY: $(TARGET) .PHONY: $(TARGET)
$(TARGET): build_with_qmake $(TARGET): build_with_qmake $(QT5_EXTRA_TARGET_DEPS)

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_declarative

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_declarative

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_declarative

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_declarative

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_quickcontrols2

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_quickcontrols2

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_declarative

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_svg

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_virtualkeyboard

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -1,6 +0,0 @@
#
# This individual library description file is needed to get the abi
# library generated when building Qt5 packages.
#
LIBS = qt5_base

View File

@ -4,14 +4,12 @@ QMAKE_TARGET_BINARIES = libqgenodeviewwidget.lib.so
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets
LIBS = libc libm mesa qoost stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qoost stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk) build_dependencies/include/qgenodeviewwidget: build_dependencies/include
qmake_root/include/qgenodeviewwidget: qmake_root/include
ln -snf $(call select_from_repositories,include/qgenodeviewwidget) $@ ln -snf $(call select_from_repositories,include/qgenodeviewwidget) $@
qmake_prepared.tag: qmake_root/include/qgenodeviewwidget qmake_prepared.tag: build_dependencies/include/qgenodeviewwidget
ifeq ($(called_from_lib_mk),yes) ifeq ($(called_from_lib_mk),yes)
all: build_with_qmake all: build_with_qmake

View File

@ -1,6 +1,4 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk) LIBS = qt5_qmake base ldso_so_support libc libm stdcxx qt5_component egl mesa qoost
LIBS = base libc libm stdcxx qt5_component egl mesa qoost
INSTALL_LIBS = lib/libQt5Core.lib.so \ INSTALL_LIBS = lib/libQt5Core.lib.so \
lib/libQt5Gui.lib.so \ lib/libQt5Gui.lib.so \
@ -19,18 +17,18 @@ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_libqjpeg.tar \ qt5_libqjpeg.tar \
qt5_libqsqlite.tar qt5_libqsqlite.tar
build: qmake_prepared.tag qmake_root/lib/ld.lib.so build: qmake_prepared.tag build_dependencies/lib/ld.lib.so
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtbase/qtbase.pro \ $(QT_DIR)/qtbase/qtbase.pro \
-- \ -- \
-prefix /qt \ -prefix /qt \
-xplatform $(QMAKE_PLATFORM) \ -xplatform $(QT_PLATFORM) \
-qpa genode \ -qpa genode \
-opensource \ -opensource \
-confirm-license \ -confirm-license \
@ -58,7 +56,7 @@ build: qmake_prepared.tag qmake_root/lib/ld.lib.so
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE) ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE) ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -0,0 +1,4 @@
#
# This is a dummy library description file for the implicit inclusion of
# import-qt5_cmake.mk.
#

View File

@ -1,8 +1,6 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Network libQt5Sql libQt5Test libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Network libQt5Sql libQt5Test libQt5Widgets
LIBS = libc libm mesa stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake ldso_so_support libc libm mesa stdcxx
INSTALL_LIBS = lib/libQt5Qml.lib.so \ INSTALL_LIBS = lib/libQt5Qml.lib.so \
lib/libQt5QmlModels.lib.so \ lib/libQt5QmlModels.lib.so \
@ -32,14 +30,14 @@ INSTALL_LIBS = lib/libQt5Qml.lib.so \
BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_declarative_qml.tar qt5_declarative_qml.tar
build: qmake_prepared.tag build: qmake_prepared.tag qt5_so_files
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtdeclarative/qtdeclarative.pro \ $(QT_DIR)/qtdeclarative/qtdeclarative.pro \
-- \ -- \
-no-feature-qml-devtools \ -no-feature-qml-devtools \
@ -58,7 +56,7 @@ build: qmake_prepared.tag
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE)ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE)ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -1,9 +1,7 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)
QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
LIBS = libc libm mesa stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa stdcxx
INSTALL_LIBS = qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.lib.so \ INSTALL_LIBS = qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.lib.so \
qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.lib.so qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.lib.so
@ -11,14 +9,14 @@ INSTALL_LIBS = qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.lib.so \
BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_graphicaleffects_qml.tar qt5_graphicaleffects_qml.tar
build: qmake_prepared.tag build: qmake_prepared.tag qt5_so_files
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtgraphicaleffects/qtgraphicaleffects.pro \ $(QT_DIR)/qtgraphicaleffects/qtgraphicaleffects.pro \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
@ -34,7 +32,7 @@ build: qmake_prepared.tag
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE)ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE)ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -0,0 +1,4 @@
#
# This is a dummy library description file for the implicit inclusion of
# import-qt5_qmake.mk.
#

View File

@ -1,23 +1,21 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)
QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network libQt5Widgets QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network libQt5Widgets
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
LIBS = libc libm mesa stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa stdcxx
INSTALL_LIBS = qml/QtQuick/Controls/libqtquickcontrolsplugin.lib.so INSTALL_LIBS = qml/QtQuick/Controls/libqtquickcontrolsplugin.lib.so
BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_quickcontrols_qml.tar qt5_quickcontrols_qml.tar
build: qmake_prepared.tag build: qmake_prepared.tag qt5_so_files
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtquickcontrols/qtquickcontrols.pro \ $(QT_DIR)/qtquickcontrols/qtquickcontrols.pro \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
@ -33,7 +31,7 @@ build: qmake_prepared.tag
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE)ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE)ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -1,9 +1,7 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)
QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network libQt5Widgets QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network libQt5Widgets
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
LIBS = libc libm mesa stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa stdcxx
INSTALL_LIBS = lib/libQt5QuickControls2.lib.so \ INSTALL_LIBS = lib/libQt5QuickControls2.lib.so \
lib/libQt5QuickTemplates2.lib.so \ lib/libQt5QuickTemplates2.lib.so \
@ -19,14 +17,14 @@ INSTALL_LIBS = lib/libQt5QuickControls2.lib.so \
BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_quickcontrols2_qml.tar qt5_quickcontrols2_qml.tar
build: qmake_prepared.tag build: qmake_prepared.tag qt5_so_files
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtquickcontrols2/qtquickcontrols2.pro \ $(QT_DIR)/qtquickcontrols2/qtquickcontrols2.pro \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
@ -42,7 +40,7 @@ build: qmake_prepared.tag
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE)ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE)ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -1,8 +1,6 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets
LIBS = libc libm mesa stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa stdcxx
INSTALL_LIBS = lib/libQt5Svg.lib.so \ INSTALL_LIBS = lib/libQt5Svg.lib.so \
plugins/imageformats/libqsvg.lib.so plugins/imageformats/libqsvg.lib.so
@ -10,14 +8,14 @@ INSTALL_LIBS = lib/libQt5Svg.lib.so \
BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_libqsvg.tar qt5_libqsvg.tar
build: qmake_prepared.tag build: qmake_prepared.tag qt5_so_files
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtsvg/qtsvg.pro \ $(QT_DIR)/qtsvg/qtsvg.pro \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
@ -33,7 +31,7 @@ build: qmake_prepared.tag
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE)ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE)ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -1,10 +1,8 @@
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Network libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Network libQt5Widgets
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
QT5_PORT_LIBS += libQt5Svg QT5_PORT_LIBS += libQt5Svg
LIBS = libc libm mesa stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa stdcxx
INSTALL_LIBS = lib/libQt5VirtualKeyboard.lib.so \ INSTALL_LIBS = lib/libQt5VirtualKeyboard.lib.so \
plugins/platforminputcontexts/libqtvirtualkeyboardplugin.lib.so \ plugins/platforminputcontexts/libqtvirtualkeyboardplugin.lib.so \
@ -16,14 +14,14 @@ BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS)) \
qt5_libqtvirtualkeyboardplugin.tar \ qt5_libqtvirtualkeyboardplugin.tar \
qt5_virtualkeyboard_qml.tar qt5_virtualkeyboard_qml.tar
build: qmake_prepared.tag build: qmake_prepared.tag qt5_so_files
@# @#
@# run qmake @# run qmake
@# @#
$(VERBOSE)source env.sh && $(QMAKE) \ $(VERBOSE)source env.sh && $(QMAKE) \
-qtconf qmake_root/mkspecs/$(QMAKE_PLATFORM)/qt.conf \ -qtconf build_dependencies/mkspecs/$(QT_PLATFORM)/qt.conf \
$(QT_DIR)/qtvirtualkeyboard/qtvirtualkeyboard.pro \ $(QT_DIR)/qtvirtualkeyboard/qtvirtualkeyboard.pro \
$(QT5_OUTPUT_FILTER) $(QT5_OUTPUT_FILTER)
@ -39,7 +37,7 @@ build: qmake_prepared.tag
$(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER) $(VERBOSE)$(MAKE) INSTALL_ROOT=$(CURDIR)/install sub-src-install_subtargets $(QT5_OUTPUT_FILTER)
$(VERBOSE)ln -sf .$(CURDIR)/qmake_root install/qt $(VERBOSE)ln -sf .$(CURDIR)/build_dependencies install/qt
@# @#
@# strip libs and create symlinks in 'bin' and 'debug' directories @# strip libs and create symlinks in 'bin' and 'debug' directories

View File

@ -1,5 +1,8 @@
MIRROR_FROM_REP_DIR := lib/import/import-qt5_cmake.mk \ MIRROR_FROM_REP_DIR := lib/import/import-qt5.inc \
lib/import/import-qt5_qmake.mk lib/import/import-qt5_cmake.mk \
lib/import/import-qt5_qmake.mk \
lib/mk/qt5_cmake.mk \
lib/mk/qt5_qmake.mk
content: $(MIRROR_FROM_REP_DIR) content: $(MIRROR_FROM_REP_DIR)

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = calculatorform
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = openglwindow
QT5_PORT_LIBS = libQt5Core libQt5Gui QT5_PORT_LIBS = libQt5Core libQt5Gui
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -5,6 +5,4 @@ QMAKE_TARGET_BINARIES = samegame
QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = tutorial1
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Test libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Test libQt5Widgets
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = tetrix
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5Widgets
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = textedit
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5PrintSupport libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5PrintSupport libQt5Widgets
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = tooltips
QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5PrintSupport libQt5Widgets QT5_PORT_LIBS = libQt5Core libQt5Gui libQt5PrintSupport libQt5Widgets
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -6,6 +6,4 @@ QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
QT5_PORT_LIBS += libQt5VirtualKeyboard QT5_PORT_LIBS += libQt5VirtualKeyboard
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,11 +4,10 @@ QMAKE_TARGET_BINARIES = qt_launchpad
QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Widgets QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Widgets
LIBS = base libc libm mesa stdcxx launchpad $(QT5_PORT_LIBS) LIBS = qt5_qmake base libc libm mesa stdcxx launchpad
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk) QT5_COMPONENT_LIB_SO =
QT5_GENODE_LIBS_APP += ld.lib.so launchpad.lib.a QT5_GENODE_LIBS_APP += ld.lib.so launchpad.lib.a
QT5_GENODE_LIBS_APP := $(filter-out qt5_component.lib.so,$(QT5_GENODE_LIBS_APP))
qmake_prepared.tag: qmake_root/lib/ld.lib.so qmake_root/lib/launchpad.lib.a qmake_prepared.tag: $(addprefix build_dependencies/lib/,$(QT5_GENODE_LIBS_APP))

View File

@ -1,6 +1,6 @@
TEMPLATE = lib TEMPLATE = lib
CONFIG += plugin c++2a CONFIG += plugin c++2a
QT = core gui gui_private widgets QT = core gui gui_private widgets
HEADERS = qmake_root/include/qgenodeviewwidget/qgenodeviewwidget.h HEADERS = build_dependencies/include/qgenodeviewwidget/qgenodeviewwidget.h
SOURCES = qgenodeviewwidget.cpp SOURCES = qgenodeviewwidget.cpp
OTHER_FILES = qgenodeviewwidget.json OTHER_FILES = qgenodeviewwidget.json

View File

@ -4,6 +4,4 @@ QMAKE_TARGET_BINARIES = test-qt_core
QT5_PORT_LIBS = libQt5Core QT5_PORT_LIBS = libQt5Core
LIBS = libc libm qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)

View File

@ -4,6 +4,4 @@ CMAKE_TARGET_BINARIES = test-qt_core_cmake
QT5_PORT_LIBS = libQt5Core QT5_PORT_LIBS = libQt5Core
LIBS = libc libm qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_cmake libc libm qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_cmake.mk)

View File

@ -5,6 +5,4 @@ QMAKE_TARGET_BINARIES = test-qt_quick
QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network QT5_PORT_LIBS += libQt5Core libQt5Gui libQt5Network
QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick QT5_PORT_LIBS += libQt5Qml libQt5QmlModels libQt5Quick
LIBS = libc libm mesa qt5_component stdcxx $(QT5_PORT_LIBS) LIBS = qt5_qmake libc libm mesa qt5_component stdcxx
include $(call select_from_repositories,lib/import/import-qt5_qmake.mk)