Wow, thanks for tracking all this down.
That cmake change came from Scott Snyder back in November for the
case of building with pipewire-jack. I guess the options would be to:
1. Remove that.
2. Come up with an alternative that works in cmake 3.1.
3. Bump the required version as you've suggested.
4. Conditionally remove those lines with older versions of cmake.
#4 seems best to me. So something like:
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.13.0")
target_link_directories(rosegardenprivate
PUBLIC
${rg_OPTIONAL_LIB_DIRS}
)
endif()
Feel free to fork, make the change, test and send a merge request.
You can also use the repo at github if you prefer.
https://github.com/tedfelix/rosegarden-official
As for the Qt issue, that's my fault. Thanks for catching it. I
will fix it. We'll stay with supporting older Qt as we do have users
that need this.
Keep building with the older tools if you don't mind. Then we can
count on you to catch our mistakes.
Ted.
On 2/16/22 4:23 PM, mark_at_yahoo via Rosegarden-devel wrote:
I'm trying to work on the Rosegarden source code, with the possibility
of submitting some improvements and bug fixes for consideration if I
succeed.
The top-level CMakeLists.txt file currently contains these two lines:
cmake_minimum_required(VERSION 3.1)
find_package(Qt5 "5.1.0" REQUIRED COMPONENTS Core Gui Widgets Xml
Network PrintSupport Test)
I believe they should be changed to:
cmake_minimum_required(VERSION 3.13)
find_package(Qt5 "5.10.0" REQUIRED COMPONENTS Core Gui Widgets Xml
Network PrintSupport Test)
Of course this won't allow building on systems that don't meet the
requirements, but at least the error messages (see "Pedantic details"
below) will be less confusing to people like me who don't have much
experience with cmake and Qt.
Would you (the maintainers) like me to:
1) Not bother you with trivial problems like this one? ;)
2) Let you make the change, if and when you approve and have the time to
do so?
3) Submit a bug ticket with this information?
4) Fork the SourceForge repository, create a branch with the change, and
submit a merge request?
Note that I'm not complaining about the requirements. Time marches on
and there's no reason for Rosegarden not to use new, useful features
from its dependencies. It's the responsibility of prospective developers
such as myself to provide an appropriate build environment.
Pedantic details:
$ cmake --version
cmake version 3.10.2
$ cd build
$ cmake ..
CMake Error at src/CMakeLists.txt:879 (target_link_directories):
Unknown CMake command "target_link_directories".
https://cmake.org/cmake/help/latest/command/target_link_directories.html
target_link_directories
New in version 3.13.
$ make
/usr/local/x/rosegarden/unbacked/rosegarden-git/src/gui/configuration/AudioPropertiesPage.cpp:157:33:
error: ‘class QString’ has no member named ‘back’
if (m_relativeAudioPath.back() == '/')
https://doc.qt.io/qt-5/qstring.html#back
QChar QString::back() const
Returns the last character in the string. Same as at(size() - 1).
This function is provided for STL compatibility.
Warning: Calling this function on an empty string constitutes undefined
behavior.
This function was introduced in Qt 5.10.
Similar for instances of QChar QString::front() in AudioPropertiesPage.cpp.
_______________________________________________
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
_______________________________________________
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel