- Timestamp:
- Aug 7, 2023 10:39:52 PM (19 months ago)
- svn:sync-xref-src-repo-rev:
- 158714
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/configure
r99764 r100819 92 92 WITH_VMMRAW=1 93 93 WITH_LIBIDL=1 94 WITH_QT 5=194 WITH_QT6=1 95 95 WITH_SDL=1 96 96 WITH_SDL_TTF=1 … … 173 173 PKGCONFIG="`which_wrapper pkg-config`" 174 174 PYTHONDIR="/usr /usr/local" 175 QT 5DIR="/usr/lib/qt5 /usr/share/qt5 /usr/lib64/qt5/usr /usr/local"176 QT 5DIR_PKGCONFIG=1177 QT 5MAJ=5178 QT 5MIN=9175 QT6DIR="/usr/lib/qt6 /usr/share/qt6 /usr/lib64/qt6 /usr /usr/local" 176 QT6DIR_PKGCONFIG=1 177 QT6MAJ=6 178 QT6MIN=3 179 179 KBUILDDIR="`cd \`dirname $0\`; pwd`/kBuild" 180 180 DEVDIR="`cd \`dirname $0\`; pwd`/tools" … … 1543 1543 1544 1544 # 1545 # Check for the Qt 5library, needed by the VirtualBox frontend1545 # Check for the Qt6 library, needed by the VirtualBox frontend 1546 1546 # 1547 1547 # Currently not fatal. 1548 1548 # 1549 check_qt 5()1550 { 1551 foundqt 5=1552 test_header Qt 51549 check_qt6() 1550 { 1551 foundqt6= 1552 test_header Qt6 1553 1553 cat > $ODIR.tmp_src.cc << EOF 1554 1554 #include <QtGlobal> … … 1556 1556 { 1557 1557 EOF 1558 echo "#if QT_VERSION >= $(($QT 5MAJ*65536+$QT5MIN*256))" >> $ODIR.tmp_src.cc1558 echo "#if QT_VERSION >= $(($QT6MAJ*65536+$QT6MIN*256))" >> $ODIR.tmp_src.cc 1559 1559 cat >> $ODIR.tmp_src.cc << EOF 1560 1560 return 0; … … 1576 1576 done 1577 1577 # Now try the user provided directory and some of the standard directories. 1578 QT_TRIES="$QT 5DIR /System/Library /Library"1578 QT_TRIES="$QT6DIR /System/Library /Library" 1579 1579 for t in $QT_TRIES; do 1580 1580 if [ -f "$t/Frameworks/QtCore.framework/QtCore" -o -f "$t/clang_64/lib/QtCore.framework/QtCore" ]; then 1581 PATH_SDK_QT 5="$t"1582 foundqt 5=11581 PATH_SDK_QT6="$t" 1582 foundqt6=1 1583 1583 break 1584 1584 fi 1585 1585 done 1586 1586 # Add the necessary params for building the test application 1587 if [ -n "$PATH_SDK_QT 5" ]; then1587 if [ -n "$PATH_SDK_QT6" ]; then 1588 1588 if [ -f "$t/clang_64/lib/QtCore.framework/QtCore" ]; then 1589 INCQT 5=-I$PATH_SDK_QT5/clang_64/lib/QtCore.framework/Headers1590 LIBQT 5=-F$PATH_SDK_QT5/clang_64/lib1591 SDKQT 5=$PATH_SDK_QT5/clang_641589 INCQT6=-I$PATH_SDK_QT6/clang_64/lib/QtCore.framework/Headers 1590 LIBQT6=-F$PATH_SDK_QT6/clang_64/lib 1591 SDKQT6=$PATH_SDK_QT6/clang_64 1592 1592 else 1593 INCQT 5=-I$PATH_SDK_QT5/Frameworks/QtCore.framework/Headers1594 LIBQT 5=-F$PATH_SDK_QT5/Frameworks1595 SDKQT 5=$PATH_SDK_QT51596 fi 1597 FLGQT 5="-framework QtCore -std=c++11 -Wl,-rpath,`L_to_PATH "$LIBQT5"`"1593 INCQT6=-I$PATH_SDK_QT6/Frameworks/QtCore.framework/Headers 1594 LIBQT6=-F$PATH_SDK_QT6/Frameworks 1595 SDKQT6=$PATH_SDK_QT6 1596 fi 1597 FLGQT6="-framework QtCore -std=c++17 -Wl,-rpath,`L_to_PATH "$LIBQT6"`" 1598 1598 else 1599 log_failure "Qt 5framework not found (can be disabled using --disable-qt)"1599 log_failure "Qt6 framework not found (can be disabled using --disable-qt)" 1600 1600 fail 1601 1601 fi 1602 1602 else # !darwin 1603 if [ $QT 5DIR_PKGCONFIG -eq 1 ]; then1603 if [ $QT6DIR_PKGCONFIG -eq 1 ]; then 1604 1604 # Default is to use pkg-config: 1605 1605 if which_wrapper pkg-config > /dev/null; then 1606 qt 5_ver=`pkg-config Qt5Core --modversion 2>> $LOG`1606 qt6_ver=`pkg-config Qt6Core --modversion 2>> $LOG` 1607 1607 if [ $? -eq 0 ]; then 1608 echo "(Qt5 from pkg-config)" >> $LOG 1609 FLGQT5=`pkg-config Qt5Core --cflags` 1610 # gcc 4.8 is able to compile with C++11 (see also VBOX_GCC_std in Config.kmk) 1611 [ $(($cc_maj * 100 + $cc_min)) -ge 408 ] && FLGQT5="$FLGQT5 -std=c++11" 1612 INCQT5=`strip_I "$FLGQT5"` 1613 LIBDIR5=`pkg-config Qt5Core --variable=libdir` 1614 LIBQT5=`pkg-config Qt5Core Qt5Gui --libs` 1615 LIBQT5="-L$LIBDIR5 $LIBQT5" 1616 TOOLQT5=`pkg-config Qt5Core --variable=prefix` 1617 TOOLQT5BIN=`pkg-config Qt5Core --variable=host_bins` 1618 if test_compile "$LIBQT5 $LIBPTHREAD $FLGQT5" qt5 qt5 nofatal; then 1619 test_execute_path "`L_to_PATH "$LIBQT5"`" nofatal && foundqt5=3 # pkg-config 1608 echo "(Qt6 from pkg-config)" >> $LOG 1609 FLGQT6=`pkg-config Qt6Core --cflags` 1610 # gcc 8.0 is able to compile with C++17 (see also VBOX_GCC_std in Config.kmk) 1611 [ $(($cc_maj * 100 + $cc_min)) -ge 408 ] && FLGQT6="$FLGQT6 -std=c++17" 1612 INCQT6=`strip_I "$FLGQT6"` 1613 LIBDIR5=`pkg-config Qt6Core --variable=libdir` 1614 LIBQT6=`pkg-config Qt6Core Qt6Gui --libs` 1615 LIBQT6="-L$LIBDIR5 $LIBQT6" 1616 TOOLQT6=`pkg-config Qt6Core --variable=prefix` 1617 TOOLQT6BIN=`pkg-config Qt6Core --variable=bindir` 1618 TOOLQT6LIBEXEC=`pkg-config Qt6Core --variable=libexecdir` 1619 if test_compile "$LIBQT6 $LIBPTHREAD $FLGQT6" qt6 qt6 nofatal; then 1620 test_execute_path "`L_to_PATH "$LIBQT6"`" nofatal && foundqt6=3 # pkg-config 1620 1621 fi 1621 1622 fi … … 1625 1626 fi 1626 1627 fi 1627 if [ -z "$foundqt 5" ]; then1628 # Do it the old way (e.g. user has specified QT 5DIR):1629 for q in $QT 5DIR "$DEVDIR/linux.$TARGET_MACHINE"/qt/v5.*; do1630 echo "(Qt 5from '$q')" >> $LOG1631 INCQT 5="$q/include $q/include/QtCore"1632 FLGQT 5="-DQT_SHARED -std=c++11"1633 I_INCQT 5=`prefix_I "$INCQT5"`1634 LIBQT 5="-L$q/lib -lQt5CoreVBox -lQt5GuiVBox"1635 TOOLQT 5="$q"1636 if test_compile "$LIBQT 5 $LIBPTHREAD $I_INCQT5 $FLGQT5" qt5 qt5nofatal &&1637 test_execute_path "`L_to_PATH "$LIBQT 5"`" nofatal; then1638 foundqt 5=2 # internal1628 if [ -z "$foundqt6" ]; then 1629 # Do it the old way (e.g. user has specified QT6DIR): 1630 for q in $QT6DIR "$DEVDIR/linux.$TARGET_MACHINE"/qt/v6.*; do 1631 echo "(Qt6 from '$q')" >> $LOG 1632 INCQT6="$q/include $q/include/QtCore" 1633 FLGQT6="-DQT_SHARED -std=c++17" 1634 I_INCQT6=`prefix_I "$INCQT6"` 1635 LIBQT6="-L$q/lib -lQt6CoreVBox -lQt6GuiVBox" 1636 TOOLQT6="$q" 1637 if test_compile "$LIBQT6 $LIBPTHREAD $I_INCQT6 $FLGQT6" qt6 qt6 nofatal && 1638 test_execute_path "`L_to_PATH "$LIBQT6"`" nofatal; then 1639 foundqt6=2 # internal 1639 1640 break; 1640 1641 fi 1641 LIBQT 5="-L$q/lib -lQt5Core -lQt5Gui"1642 if test_compile "$LIBQT 5 $LIBPTHREAD $I_INCQT5 $FLGQT5" qt5 qt5nofatal &&1643 test_execute_path "`L_to_PATH "$LIBQT 5"`" nofatal; then1644 foundqt 5=1 # no pkg-config, Qt directory1642 LIBQT6="-L$q/lib -lQt6Core -lQt6Gui" 1643 if test_compile "$LIBQT6 $LIBPTHREAD $I_INCQT6 $FLGQT6" qt6 qt6 nofatal && 1644 test_execute_path "`L_to_PATH "$LIBQT6"`" nofatal; then 1645 foundqt6=1 # no pkg-config, Qt directory 1645 1646 break; 1646 1647 fi … … 1648 1649 fi 1649 1650 fi 1650 if [ -n "$foundqt 5" ]; then1651 if [ -n "$foundqt6" ]; then 1651 1652 # We decided which version of Qt to use, now enforce the version requirement: 1652 1653 cat > $ODIR.tmp_src.cc << EOF … … 1657 1658 printf("found version %s", QT_VERSION_STR); 1658 1659 EOF 1659 echo "#if QT_VERSION >= $(($QT 5MAJ*65536+$QT5MIN*256))" >> $ODIR.tmp_src.cc1660 echo "#if QT_VERSION >= $(($QT6MAJ*65536+$QT6MIN*256))" >> $ODIR.tmp_src.cc 1660 1661 cat >> $ODIR.tmp_src.cc << EOF 1661 1662 printf(", OK.\n"); … … 1663 1664 #else 1664 1665 EOF 1665 echo " printf(\", expected version $QT 5MAJ.$QT5MIN or higher\\\\n\");" >> $ODIR.tmp_src.cc1666 echo " printf(\", expected version $QT6MAJ.$QT6MIN or higher\\\\n\");" >> $ODIR.tmp_src.cc 1666 1667 cat >> $ODIR.tmp_src.cc << EOF 1667 1668 return 1; … … 1669 1670 } 1670 1671 EOF 1671 [ -n "$INCQT 5" ] && I_INCQT5=`prefix_I "$INCQT5"`1672 if test_compile "$LIBQT 5 $LIBPTHREAD $I_INCQT5 $FLGQT5" qt5 qt5nofatal; then1673 if test_execute_path "`L_to_PATH "$LIBQT 5"`"; then1672 [ -n "$INCQT6" ] && I_INCQT6=`prefix_I "$INCQT6"` 1673 if test_compile "$LIBQT6 $LIBPTHREAD $I_INCQT6 $FLGQT6" qt6 qt6 nofatal; then 1674 if test_execute_path "`L_to_PATH "$LIBQT6"`"; then 1674 1675 if [ "$OS" = "darwin" ]; then 1675 1676 # Successful build & run the test application so add the necessary 1676 1677 # params to AutoConfig.kmk: 1677 cnf_append "PATH_SDK_QT 5_INC" "`L_to_PATH "$LIBQT5"`"1678 cnf_append "PATH_SDK_QT 5_LIB" "`L_to_PATH "$LIBQT5"`"1679 cnf_append "PATH_SDK_QT 5" "$SDKQT5"1678 cnf_append "PATH_SDK_QT6_INC" "`L_to_PATH "$LIBQT6"`" 1679 cnf_append "PATH_SDK_QT6_LIB" "`L_to_PATH "$LIBQT6"`" 1680 cnf_append "PATH_SDK_QT6" "$SDKQT6" 1680 1681 # Check for the moc tool in the Qt directory found & some standard 1681 1682 # directories. 1682 for q in $PATH_SDK_QT5 $PATH_SDK_QT5/clang_64 /usr /Developer/Tools/Qt; do 1683 if which_wrapper "$q/bin/moc" > /dev/null; then 1684 cnf_append "PATH_TOOL_QT5_BIN" "$q/bin" 1683 for q in $PATH_SDK_QT6 $PATH_SDK_QT6/clang_64 /usr /Developer/Tools/Qt; do 1684 if which_wrapper "$q/bin/lrelease" > /dev/null; then 1685 cnf_append "PATH_TOOL_QT6_BIN" "$q/bin" 1686 fi 1687 if which_wrapper "$q/libexec/moc" > /dev/null; then 1688 cnf_append "PATH_TOOL_QT6_LIBEXEC" "$q/libexec" 1685 1689 fi 1686 1690 done 1687 1691 else 1688 1692 # Strip .../QtCore as we add components ourself: 1689 INCQT 5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'`1693 INCQT6=`echo "$INCQT6"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'` 1690 1694 # store only the first path, remove all other paths 1691 # most likely pkg-config gave us -I/usr/include/qt 5 -I/usr/include/qt5/QtCore1692 INCQT 5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\) .*|\1|'`1693 cnf_append "VBOX_PATH_QT_LIB" "`strip_L "$LIBQT 5"`"1694 cnf_append "PATH_SDK_QT 5_INC" "$INCQT5"1695 # most likely pkg-config gave us -I/usr/include/qt6 -I/usr/include/qt6/QtCore 1696 INCQT6=`echo "$INCQT6"|$KBUILD_SED 's|\([^ ]*\) .*|\1|'` 1697 cnf_append "VBOX_PATH_QT_LIB" "`strip_L "$LIBQT6"`" 1698 cnf_append "PATH_SDK_QT6_INC" "$INCQT6" 1695 1699 # This is not quite right since the qt libpath does not have to be first... 1696 cnf_append "PATH_SDK_QT 5_LIB" '$'"(firstword `strip_L "$LIBQT5"`)"1697 if [ "$foundqt 5" = "2" ]; then1700 cnf_append "PATH_SDK_QT6_LIB" '$'"(firstword `strip_L "$LIBQT6"`)" 1701 if [ "$foundqt6" = "2" ]; then 1698 1702 cnf_append "VBOX_WITH_ORACLE_QT" "1" 1699 1703 fi 1700 if [ "$foundqt5" != "3" ]; then 1701 TOOLQT5BIN="$TOOLQT5/bin" 1704 if [ "$foundqt6" != "3" ]; then 1705 TOOLQT6BIN="$TOOLQT6/bin" 1706 TOOLQT6LIBEXEC="$TOOLQT6/libexec" 1702 1707 fi 1703 test_header "Qt 5devtools"1708 test_header "Qt6 devtools" 1704 1709 # Try it with a suffix, some platforms use that 1705 if which_wrapper "$TOOLQT 5BIN/moc-qt5" > /dev/null; then1706 QT 5BINSUFF="-qt5"1710 if which_wrapper "$TOOLQT6LIBEXEC/moc-qt6" > /dev/null; then 1711 QT6BINSUFF="-qt6" 1707 1712 else 1708 QT 5BINSUFF=""1713 QT6BINSUFF="" 1709 1714 fi 1710 moc_ver=`$TOOLQT 5BIN/moc$QT5BINSUFF -v 2>&1|sed 's+^.*(Qt \(.*\))+\1+'`1715 moc_ver=`$TOOLQT6LIBEXEC/moc$QT6BINSUFF -v 2>&1|sed 's+^.*(Qt \(.*\))+\1+'` 1711 1716 if [ $? -ne 0 ]; then 1712 log_failure "moc$QT 5BINSUFF not working"1717 log_failure "moc$QT6BINSUFF not working" 1713 1718 fail 1714 1719 else 1715 1720 log_success "found version $moc_ver" 1716 cnf_append "VBOX_PATH_QT" "$TOOLQT5" 1717 cnf_append "PATH_SDK_QT5" "$TOOLQT5" 1718 cnf_append "PATH_TOOL_QT5_BIN" "$TOOLQT5BIN" 1719 [ -n "$QT5BINSUFF" ] && cnf_append "TOOL_QT5_BIN_SUFF" "$QT5BINSUFF" 1721 cnf_append "VBOX_PATH_QT" "$TOOLQT6" 1722 cnf_append "PATH_SDK_QT6" "$TOOLQT6" 1723 cnf_append "PATH_TOOL_QT6_BIN" "$TOOLQT6BIN" 1724 cnf_append "PATH_TOOL_QT6_LIBEXEC" "$TOOLQT6LIBEXEC" 1725 [ -n "$QT6BINSUFF" ] && cnf_append "TOOL_QT6_BIN_SUFF" "$QT6BINSUFF" 1720 1726 fi 1721 1727 fi 1722 1728 fi 1723 1729 else 1724 log_failure "qt 5not working"1730 log_failure "qt6 not working" 1725 1731 fail 1726 1732 fi 1727 1733 else 1728 log_failure "qt 5not found"1734 log_failure "qt6 not found" 1729 1735 fail 1730 1736 fi … … 2510 2516 [ $WITH_VMMRAW -eq 1 ] && echo " --disable-vmmraw disable VMM raw mode (VT-x/AMD-V mandatory!)" 2511 2517 [ $WITH_SDL_TTF -eq 1 ] && echo " --disable-sdl-ttf disable SDL_ttf detection" 2512 [ $WITH_QT 5-eq 1 ] && echo " --disable-qt disable Qt detection"2518 [ $WITH_QT6 -eq 1 ] && echo " --disable-qt disable Qt detection" 2513 2519 [ $WITH_ALSA -eq 1 ] && echo " --disable-alsa disable the ALSA sound backend" 2514 2520 [ $WITH_PULSE -eq 1 ] && echo " --disable-pulse disable the PulseAudio backend" … … 2516 2522 [ $WITH_KMODS -eq 1 ] && echo " --disable-kmods don't build Linux kernel modules (host and guest)" 2517 2523 [ $WITH_OPENGL -eq 1 ] && echo " --disable-opengl disable OpenGL support (2D & 3D)" 2518 [ $WITH_QT 5 -eq 0 ] && echo " --enable-qt5 enable Qt5detection"2524 [ $WITH_QT6 -eq 0 ] && echo " --enable-qt6 enable Qt6 detection" 2519 2525 [ $OSE -eq 1 ] && echo " --enable-vnc enable the VNC server" 2520 2526 [ $OSE -eq 0 ] && echo " --disable-extpack don't build the extpack" … … 2555 2561 [ "$OS" = "darwin" ] && echo " only, ignored for the rest)" 2556 2562 [ "$OS" = "linux" ] && echo " --with-linux=DIR Linux kernel source directory [$LINUX]" 2557 [ $WITH_QT 5-eq 1 ] && echo " --with-qt-dir=DIR directory for Qt headers/libraries [pkgconfig]"2563 [ $WITH_QT6 -eq 1 ] && echo " --with-qt-dir=DIR directory for Qt headers/libraries [pkgconfig]" 2558 2564 cat << EOF 2559 2565 --with-gsoap-dir=PATH directory for gSOAP compiler/headers/libraries … … 2654 2660 ;; 2655 2661 --with-qt-dir=*) 2656 [ $WITH_QT 5 -eq 1 ] && QT5DIR=`echo $option | cut -d'=' -f2`2657 [ $WITH_QT 5 -eq 1 ] && QT5DIR_PKGCONFIG=02658 ;; 2659 --with-qt 5-minor=*)2660 QT 5MIN=`echo $option | cut -d'=' -f2`2661 ;; 2662 --with-qt 5-major=*)2663 QT 5MAJ=`echo $option | cut -d'=' -f2`2662 [ $WITH_QT6 -eq 1 ] && QT6DIR=`echo $option | cut -d'=' -f2` 2663 [ $WITH_QT6 -eq 1 ] && QT6DIR_PKGCONFIG=0 2664 ;; 2665 --with-qt6-minor=*) 2666 QT6MIN=`echo $option | cut -d'=' -f2` 2667 ;; 2668 --with-qt6-major=*) 2669 QT6MAJ=`echo $option | cut -d'=' -f2` 2664 2670 ;; 2665 2671 --with-openssl-dir=*) … … 2715 2721 ;; 2716 2722 --disable-qt) 2717 [ $WITH_QT 5 -eq 1 ] && WITH_QT5=02718 ;; 2719 --enable-qt 5)2720 [ $WITH_QT 5 -eq 0 ] && WITH_QT5=12723 [ $WITH_QT6 -eq 1 ] && WITH_QT6=0 2724 ;; 2725 --enable-qt6) 2726 [ $WITH_QT6 -eq 0 ] && WITH_QT6=1 2721 2727 ;; 2722 2728 --passive-mesa) … … 2815 2821 WITH_X11=0 2816 2822 WITH_OPENGL=0 2817 WITH_QT 5=02823 WITH_QT6=0 2818 2824 ;; 2819 2825 --ose) … … 2967 2973 fi 2968 2974 [ $WITH_XPCOM -eq 0 ] && cnf_append "VBOX_WITH_MAIN" "" 2969 [ $WITH_QT 5-eq 0 ] && cnf_append "VBOX_WITH_QTGUI" ""2975 [ $WITH_QT6 -eq 0 ] && cnf_append "VBOX_WITH_QTGUI" "" 2970 2976 [ $WITH_SDL_TTF -eq 0 ] && cnf_append "VBOX_WITH_SECURELABEL" "" 2971 2977 [ $WITH_PYTHON -eq 0 ] && cnf_append "VBOX_WITH_PYTHON" "" … … 3028 3034 [ $WITH_X11 -eq 1 ] && check_xrandr 3029 3035 [ $WITH_OPENGL -eq 1 ] && check_opengl 3030 [ $WITH_QT 5 -eq 1 ] && check_qt53036 [ $WITH_QT6 -eq 1 ] && check_qt6 3031 3037 [ $WITH_PYTHON -eq 1 ] && check_python 3032 3038 [ $WITH_JAVA -eq 1 ] && check_java
Note:
See TracChangeset
for help on using the changeset viewer.