find_package(X11 REQUIRED)
if(X11_FOUND)
  add_compile_definitions(WITH_X11)
  include_directories(SYSTEM ${X11_INCLUDE_DIR})
  list(APPEND LIBS ${X11_LIBRARIES})
endif()

if(X11_XShm_FOUND)
  add_compile_definitions(WITH_XSHM)
  include_directories(SYSTEM ${X11_XShm_INCLUDE_PATH})
  list(APPEND LIBS ${X11_XShm_LIB})
endif()

if(X11_Xext_FOUND)
  add_compile_definitions(WITH_XEXT)
  list(APPEND LIBS ${X11_Xext_LIB})
endif()

if(X11_Xinerama_FOUND)
  add_compile_definitions(WITH_XINERAMA)
  include_directories(SYSTEM ${X11_Xinerama_INCLUDE_PATH})
  list(APPEND LIBS ${X11_Xinerama_LIB})
endif()

if(X11_Xdamage_FOUND)
  add_compile_definitions(WITH_XDAMAGE)
  include_directories(SYSTEM ${X11_Xdamage_INCLUDE_PATH})
  list(APPEND LIBS ${X11_Xdamage_LIB})
endif()

if(X11_Xfixes_FOUND)
  add_compile_definitions(WITH_XFIXES)
  include_directories(SYSTEM ${X11_Xfixes_INCLUDE_PATH})
  list(APPEND LIBS ${X11_Xfixes_LIB})
endif()

if(X11_XTest_FOUND)
  add_compile_definitions(WITH_XTEST)
  include_directories(SYSTEM ${X11_XTest_INCLUDE_PATH})
  list(APPEND LIBS ${X11_XTest_LIB})
endif()

# XCursor and XRandr are currently not used so don't link them
#if(X11_Xcursor_FOUND)
#	add_compile_definitions(WITH_XCURSOR)
#	include_directories(SYSTEM ${X11_Xcursor_INCLUDE_PATH})
#	list(APPEND LIBS ${X11_Xcursor_LIB})
#endif()

#if(X11_Xrandr_FOUND)
#	add_compile_definitions(WITH_XRANDR)
#	include_directories(SYSTEM ${X11_Xrandr_INCLUDE_PATH})
#	list(APPEND LIBS ${X11_Xrandr_LIB})
#endif()

find_package(PAM)
if(PAM_FOUND)
  add_compile_definitions(WITH_PAM)
  include_directories(SYSTEM ${PAM_INCLUDE_DIR})
  list(APPEND LIBS ${PAM_LIBRARY})
else()
  message("building without PAM authentication support")
endif()

add_compile_definitions(WITH_SHADOW_X11)
add_library(freerdp-shadow-subsystem-impl STATIC x11_shadow.h x11_shadow.c)
target_link_libraries(freerdp-shadow-subsystem-impl PRIVATE ${LIBS})
