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

Reply via email to