The custom precompiled-headers handling causes dependency
loops in Ninja. I don't see much value in the PCH here, so
just zero them out. (Neither do I understand how ninja ends
up with the dependency loop; make handles this without complaint)

--- CMakeLists.txt.orig	2021-01-27 17:12:14 UTC
+++ CMakeLists.txt
@@ -276,7 +276,7 @@ endif (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
 
 if (NOT MSVC)
    set(CMAKE_CXX_FLAGS_DEBUG   "-g")
-   set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -DQT_NO_DEBUG")
+   set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -DQT_NO_DEBUG")
 endif (NOT MSVC)
 
 if (APPLE)
@@ -629,6 +629,38 @@ else(APPLE)
       set_target_properties(oggdll PROPERTIES IMPORTED_IMPLIB ${OGG_LIBRARY})
    else (MINGW OR MSVC)
       set(SNDFILE_LIB sndfile)
+      message(STATUS "Looking for support libraries")
+      PKGCONFIG1(sndfile 1.0 SNDFILE_INCDIR SNDFILE_LIBDIR SNDFILE_LIB SNDFILE_CPP)
+      PKGCONFIG1(ogg 1.0 OGG_INCDIR OGG_LIBDIR OGG_LIB OGG_CPP)
+      PKGCONFIG1(vorbis 1.0 VORBIS_INCDIR VORBIS_LIBDIR VORBIS_LIB VORBIS_CPP)
+      message(STATUS "sndfile=${SNDFILE_LIBDIR} ogg=${OGG_LIBDIR} vorbis=${VORBIS_LIBDIR}")
+      if (SNDFILE_LIB)
+        find_library(_l sndfile PATHS ${SNDFILE_LIBDIR})
+        if (_l)
+          add_library(sndfile UNKNOWN IMPORTED)
+          set_target_properties(sndfile PROPERTIES
+            IMPORTED_LOCATION ${_l}
+            INTERFACE_INCLUDE_DIRECTORIES ${SNDFILE_INCDIR})
+        endif()
+      endif()
+      if (OGG_LIB)
+        find_library(_l ogg PATHS ${OGG_LIBDIR})
+        if (_l)
+          add_library(ogg UNKNOWN IMPORTED)
+          set_target_properties(ogg PROPERTIES
+            IMPORTED_LOCATION ${_l}
+            INTERFACE_INCLUDE_DIRECTORIES ${OGG_INCDIR})
+        endif()
+      endif()
+      if (VORBIS_LIB)
+        find_library(_l vorbis PATHS ${VORBIS_LIBDIR})
+        if (_l)
+          add_library(vorbis UNKNOWN IMPORTED)
+          set_target_properties(vorbis PROPERTIES
+            IMPORTED_LOCATION ${_l}
+            INTERFACE_INCLUDE_DIRECTORIES ${VORBIS_INCDIR})
+        endif()
+      endif()
    endif (MINGW OR MSVC)
    set(OGG_LIB ogg)
 
@@ -733,7 +765,7 @@ if (NOT MINGW AND NOT MSVC AND NOT APPLE)
             )
     endif (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
     # Install man pages in either compressed or uncompressed form
-    install( FILES ${MAN_BUILD} DESTINATION share/man/man1 COMPONENT doc)
+    install( FILES ${MAN_BUILD} DESTINATION man/man1 COMPONENT doc)
     # Create symlink alias for man pages so `man musescore` = `man mscore`
     find_program( LN_EXECUTABLE ln DOC "A tool for creating symbolic link aliases (optional)." )
     if (LN_EXECUTABLE)
@@ -744,7 +776,7 @@ if (NOT MINGW AND NOT MSVC AND NOT APPLE)
             COMMAND ${LN_EXECUTABLE} -sf "${MAN_FULL_NAME}" "${MAN_FULL_ALIAS}"
             COMMAND echo 'Symlink alias: ${MAN_FULL_ALIAS} -> ${MAN_FULL_NAME}'
             )
-        install( FILES ${PROJECT_BINARY_DIR}/${MAN_FULL_ALIAS} DESTINATION share/man/man1 COMPONENT doc)
+        install( FILES ${PROJECT_BINARY_DIR}/${MAN_FULL_ALIAS} DESTINATION man/man1 COMPONENT doc)
      else (LN_EXECUTABLE)
          message(STATUS "'ln' not found (it is optional). No symlink aliases will be created.")
      endif (LN_EXECUTABLE)
@@ -771,8 +803,8 @@ precompiled_header(QT_INCLUDES all ${BUILD_PCH})
 # MSVC does not require these targets, as all.h is not copied and the
 #   PCH generation is done per-project
 if (NOT MSVC)
-   ADD_CUSTOM_TARGET(mops1 DEPENDS ${PROJECT_BINARY_DIR}/all.h)
-   ADD_CUSTOM_TARGET(mops2 DEPENDS ${PCH})
+   ADD_CUSTOM_TARGET(mops1 DEPENDS ) # ${PROJECT_BINARY_DIR}/all.h)
+   ADD_CUSTOM_TARGET(mops2 DEPENDS ) # ${PCH})
 endif (NOT MSVC)
 
 ##
