diff --git a/CMakeLists.txt b/CMakeLists.txt index d2c33b8..8c2e668 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,11 +8,18 @@ include(GNUInstallDirs) set ( CMAKE_CXX_STANDARD 11 ) -if ( ZOOMFIX ) -find_package( X11 REQUIRED ) -link_libraries( ${X11_LIBRARIES} ) -include_directories( ${X11_INCLUDE_DIR} ) -endif ( ZOOMFIX ) +if ( NOT NO_X11_DEPS ) +find_package( X11 ) + if ( X11_FOUND ) + message (STATUS "Will compile using X11 Libraries" ) + link_libraries( ${X11_LIBRARIES} ) + include_directories( ${X11_INCLUDE_DIR} ) + else () + message (STATUS "X11 libraries not found, will compile without X11 dependence" ) + endif () +else() + message (STATUS "will compile without X11 dependence" ) +endif() if( UNIX AND NOT APPLE ) add_definitions( -DSUPPRESS_AVAHI_COMPAT_WARNING ) diff --git a/README.html b/README.html index 7d6eac9..89aa417 100644 --- a/README.html +++ b/README.html @@ -1,6 +1,6 @@

UxPlay -1.58: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix +id="uxplay-1.59-airplay-mirror-and-airplay-audio-server-for-linux-macos-and-unix-now-also-runs-on-windows.">UxPlay +1.59: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).

Now @@ -236,16 +236,18 @@ follow the instructions below:

optimization for the computer it is built on; when this is not the case, as when you are packaging for a distribution, use the cmake option -DNO_MARCH_NATIVE=ON.

-

If you use Gstreamer older than 1.20, and wish to share the UxPlay -screen using screen-sharing apps such as Zoom, you should use the cmake -option “-DZOOMFIX=ON” in step 3. This requires the X11 -development libraries to be installed: on Debian-based systems do this -with “sudo apt-get install libx11-dev” . “ZOOMFIX” is not -needed on macOS, or if you are using non-X11 windows (such as OpenGL) on -Linux. See ZOOMFIX compile-time -option below for more information, and alternatives to “ZOOMFIX”. -ZOOMFIX will NOT be applied if GStreamer >= 1.20 is -found.

+

If you use X11 Windows on Linux or BSD, and wish to toggle in/out +of fullscreen mode with key F11, UxPlay needs to be built with a +dependence on X11. Starting with UxPlay-1.59, this will be done by +default IF the X11 development libraries are installed +and detected. Install these with +“sudo apt-get install libx11-dev”. If GStreamer < 1.20 +is detected, a fix (“ZOOMFIX”) to a problem (fixed since GStreamer-1.20) +that prevents screen-sharing apps like Zoom from detecting (and sharing) +an X11 UxPlay window will also be made. If you wish to build UxPlay +without* any X11 dependence, use the cmake option +-DNO_X11_DEPS=ON (this is not necessary if the X11 +development libraries are not installed).

  1. sudo apt-get install libssl-dev libplist-dev“. (unless you need to build OpenSSL and libplist from source).
  2. @@ -255,7 +257,8 @@ modify the source, replace this by “mkdir build; cd build; cmake ..”: you can then delete the build directory if needed, without affecting the source.) Also add any cmake “-D” options here as needed (e.g, --DZOOMFIX=ON or -DNO_MARCH_NATIVE=ON). +-DNO_X11_DEPS=ON or +-DNO_MARCH_NATIVE=ON).
  3. make
  4. sudo make install (you can afterwards uninstall with sudo make uninstall in the same directory in which this was @@ -390,8 +393,9 @@ FILE (which can be /dev/null to discard it).

  5. Red Hat, Fedora, CentOS (now continued as Rocky Linux or Alma Linux): (sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (some from the “PowerTools” add-on -repository) (+libX11-devel for ZOOMFIX). The required GStreamer packages -are: gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav +repository) (+libX11-devel for fullscreen X11, and “ZOOMFIX” if needed). +The required GStreamer packages are: gstreamer1-devel +gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for intel graphics); you may need to get some of them (in particular gstreamer1-libav) from rpmfusion.org (which provides packages @@ -399,10 +403,11 @@ including plugins that RedHat does not ship for license reasons).

  6. OpenSUSE: (sudo zypper install) libopenssl-devel libplist-devel avahi-compat-mDNSResponder-devel (+ libX11-devel for -ZOOMFIX). The required GStreamer packages are: gstreamer-devel -gstreamer-plugins-base-devel gstreamer-plugins-libav -gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel graphics); in -some cases, you may need to use gstreamer packages for OpenSUSE from Packman “Essentials” (which provides packages including plugins that OpenSUSE does not ship for license reasons).

  7. @@ -465,10 +470,10 @@ packages to be installed by Homebrew as dependencies. You may need to set the environment variable GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0 to point to the Homebrew GStreamer installation.

    -

    Finally, build and install uxplay (without ZOOMFIX): open a terminal -and change into the UxPlay source directory (“UxPlay-master” for zipfile -downloads, “UxPlay” for “git clone” downloads) and build/install with -“cmake . ; make ; sudo make install” (same as for Linux).

    +

    Finally, build and install uxplay: open a terminal and change into +the UxPlay source directory (“UxPlay-master” for zipfile downloads, +“UxPlay” for “git clone” downloads) and build/install with “cmake . ; +make ; sudo make install” (same as for Linux).