6 days ago
use pkg-config for qt5 compiler flags
application/main.c | file | annotate | diff | comparison | revisions | |
configure | file | annotate | diff | comparison | revisions | |
make/project.xml | file | annotate | diff | comparison | revisions | |
ui/qt/Makefile | file | annotate | diff | comparison | revisions | |
ui/qt/qt4.pro | file | annotate | diff | comparison | revisions | |
ui/qt/qt5.pro | file | annotate | diff | comparison | revisions | |
ui/qt/toolkit.cpp | file | annotate | diff | comparison | revisions | |
ui/ui/toolkit.h | file | annotate | diff | comparison | revisions |
--- a/application/main.c Wed Mar 26 20:42:02 2025 +0100 +++ b/application/main.c Wed Mar 26 21:15:20 2025 +0100 @@ -773,7 +773,16 @@ #ifdef UI_QT +void application_startup(UiEvent *event, void *data) { + +} + int main(int argc, char **argv) { + ui_init("app1", 0, NULL); + ui_onstartup(application_startup, NULL); + + ui_main(); + return 0; }
--- a/configure Wed Mar 26 20:42:02 2025 +0100 +++ b/configure Wed Mar 26 21:15:20 2025 +0100 @@ -311,27 +311,26 @@ if [ -z "$lang_cpp" ] ; then break fi + if [ -z "$PKG_CONFIG" ]; then + break + fi if which qmake-qt5 > /dev/null ; then : else break fi - TEMP_CFLAGS="$TEMP_CFLAGS -DUI_QT5" - if tmp_flags=`qmake-qt5 -o - /dev/null | grep "DEFINES " | sed "s/DEFINES[ ]*=//g"` ; then - TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" + if test_pkg_config "Qt5Widgets" "" "" "" ; then + TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags Qt5Widgets`" + TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs Qt5Widgets`" else break fi - if tmp_flags=`qmake-qt5 -o - /dev/null | grep "INCPATH " | sed "s/INCPATH[ ]*=//g"` ; then - TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" - else - break - fi - if tmp_flags=`qmake-qt5 -o - /dev/null | grep "LIBS " | sed "s/LIBS[ ]*=//g"` ; then - TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" - else - break - fi + TEMP_CFLAGS="$TEMP_CFLAGS -DUI_QT5" + cat >> $TEMP_DIR/make.mk << __EOF__ +# Dependency: qt5 +QMAKE = qmake-qt5 +QT_PRO_FILE = qt5.pro +__EOF__ print_check_msg "$dep_checked_qt5" "yes\n" dep_checked_qt5=1 return 1
--- a/make/project.xml Wed Mar 26 20:42:02 2025 +0100 +++ b/make/project.xml Wed Mar 26 21:15:20 2025 +0100 @@ -46,9 +46,9 @@ <test>which qmake-qt5</test> <lang>cpp</lang> <cflags>-DUI_QT5</cflags> - <cflags exec="true">qmake-qt5 -o - /dev/null | grep "DEFINES " | sed "s/DEFINES[ ]*=//g"</cflags> - <cflags exec="true">qmake-qt5 -o - /dev/null | grep "INCPATH " | sed "s/INCPATH[ ]*=//g"</cflags> - <ldflags exec="true">qmake-qt5 -o - /dev/null | grep "LIBS " | sed "s/LIBS[ ]*=//g"</ldflags> + <pkgconfig>Qt5Widgets</pkgconfig> + <make>QMAKE = qmake-qt5</make> + <make>QT_PRO_FILE = qt5.pro</make> </dependency> <dependency name="cocoa" platform="macos">
--- a/ui/qt/Makefile Wed Mar 26 20:42:02 2025 +0100 +++ b/ui/qt/Makefile Wed Mar 26 21:15:20 2025 +0100 @@ -30,8 +30,8 @@ UI_QT_LIB = ../build/ui/qt/ -$(QT_MAKEFILE): qt/qt4.pro - qmake-qt4 -o - qt/qt4.pro > $(QT_MAKEFILE) +$(QT_MAKEFILE): qt/$(QT_PRO_FILE) + $(QMAKE) -o - $< > $(QT_MAKEFILE) $(UI_LIB): $(QT_MAKEFILE) $(OBJ) FORCE $(MAKE) -f $(QT_MAKEFILE)
--- a/ui/qt/qt4.pro Wed Mar 26 20:42:02 2025 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 2014 Olaf Wintermann. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -TARGET = uitk -TEMPLATE = lib -CONFIG += staticlib warn_off debug -DESTDIR = ../build/lib -MOC_DIR = ../build/ui/qt -OBJECTS_DIR = ../build/ui/qt - -DEFINES += UI_QT4 - -SOURCES += toolkit.cpp -SOURCES += window.cpp -SOURCES += menu.cpp -SOURCES += toolbar.cpp -SOURCES += stock.cpp -SOURCES += container.cpp -SOURCES += text.cpp -SOURCES += model.cpp -SOURCES += tree.cpp -SOURCES += button.cpp -SOURCES += label.cpp -SOURCES += graphics.cpp - -HEADERS += toolkit.h -HEADERS += window.h -HEADERS += menu.h -HEADERS += toolbar.h -HEADERS += stock.h -HEADERS += container.h -HEADERS += text.h -HEADERS += model.h -HEADERS += tree.h -HEADERS += button.h -HEADERS += label.h -HEADERS += graphics.h -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/qt/qt5.pro Wed Mar 26 21:15:20 2025 +0100 @@ -0,0 +1,65 @@ +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright 2014 Olaf Wintermann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +TARGET = uitk +TEMPLATE = lib +CONFIG += staticlib warn_off debug +DESTDIR = ../build/lib +MOC_DIR = ../build/ui/qt +OBJECTS_DIR = ../build/ui/qt + +QT += core gui widgets + +DEFINES += UI_QT5 + +SOURCES += toolkit.cpp +SOURCES += window.cpp +SOURCES += menu.cpp +SOURCES += toolbar.cpp +SOURCES += stock.cpp +SOURCES += container.cpp +SOURCES += text.cpp +SOURCES += model.cpp +SOURCES += tree.cpp +SOURCES += button.cpp +SOURCES += label.cpp +SOURCES += graphics.cpp + +HEADERS += toolkit.h +HEADERS += window.h +HEADERS += menu.h +HEADERS += toolbar.h +HEADERS += stock.h +HEADERS += container.h +HEADERS += text.h +HEADERS += model.h +HEADERS += tree.h +HEADERS += button.h +HEADERS += label.h +HEADERS += graphics.h +
--- a/ui/qt/toolkit.cpp Wed Mar 26 20:42:02 2025 +0100 +++ b/ui/qt/toolkit.cpp Wed Mar 26 21:15:20 2025 +0100 @@ -38,10 +38,18 @@ static const char *application_name; +static ui_callback startup_func; +static void *startup_data; +static ui_callback open_func; +void *open_data; +static ui_callback exit_func; +void *exit_data; + static ui_callback appclose_fnc; static void *appclose_udata; -//static QApplication app(qargc, qargv); +static int is_toplevel_realized = 0; + int app_argc; char **app_argv; QApplication *application = NULL; @@ -63,13 +71,19 @@ return application_name; } -void ui_exitfunc(ui_callback f, void *udata) { - appclose_fnc = f; - appclose_udata = udata; +void ui_onstartup(ui_callback f, void *userdata) { + startup_func = f; + startup_data = userdata; } -void ui_openfilefunc(ui_callback f, void *userdata) { - // OS X only +void ui_onopen(ui_callback f, void *userdata) { + open_func = f; + open_data = userdata; +} + +void ui_onexit(ui_callback f, void *userdata) { + exit_func = f; + exit_data = userdata; } void ui_main() {