FIND_PATH(XMU_INCLUDE_DIR Xmu.h
     	PATH_SUFFIXES X11 X11/Xmu
	)

FIND_LIBRARY(X11_LIBRARIES NAMES X11)
FIND_LIBRARY(XRANDR_LIBRARIES NAMES Xrandr)
FIND_LIBRARY(XFIXES_LIBRARIES NAMES Xfixes)
FIND_LIBRARY(XINERAMA_LIBRARIES NAMES Xinerama)
FIND_LIBRARY(XMU_LIBRARIES NAMES Xmu)
IF(XMU_LIBRARIES)
  MESSAGE( "-- Xmu: " ${XMU_LIBRARIES} )
  MESSAGE( "-- Xrandr: " ${XRANDR_LIBRARIES} )
  MESSAGE( "-- Xfixes: " ${XFIXES_LIBRARIES} )
  MESSAGE( "-- Xinerama: " ${XINERAMA_LIBRARIES} )
  MESSAGE( "-- X11: " ${X11_LIBRARIES} )
  SET( XMU_FOUND TRUE )
  INCLUDE_DIRECTORIES( ${XMU_INCLUDE_DIR} )
  LINK_DIRECTORIES( ${XMU_LIBRARY_DIR} )
ENDIF()

INCLUDE_DIRECTORIES (
	${CMAKE_CURRENT_SOURCE_DIR}/../X11/Xcm/
  ${CMAKE_BINARY_DIR}/src/include/X11/Xcm/
	)

IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
   SET( XCM_LINUX_CFILES
	      ${CMAKE_CURRENT_SOURCE_DIR}/XcmDDC.c
      )
   SET(HAVE_LINUX "#define XCM_HAVE_LINUX 1")

   IF(ENABLE_SHARED_LIBS)
     ADD_LIBRARY(           XcmDDC SHARED ${XCM_LINUX_CFILES} )
     SET_TARGET_PROPERTIES( XcmDDC
    PROPERTIES VERSION ${PACKAGE_VERSION}
             SOVERSION ${${OPROJECT_NAME}_PACKAGE_MAJOR}
                     )
     TARGET_LINK_LIBRARIES( XcmDDC ${EXTRA_LIBS} )
     IF(ENABLE_INSTALL_XCM)
       INSTALL( TARGETS     XcmDDC
         RUNTIME       DESTINATION ${CMAKE_INSTALL_BINDIR}
         LIBRARY       DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE       DESTINATION ${CMAKE_INSTALL_LIBDIR}
         )
     ENDIF(ENABLE_INSTALL_XCM)
   ENDIF(ENABLE_SHARED_LIBS)
   SET( XCM_LINUX_LIB "XcmDDC" )
ELSE()
   UNSET(HAVE_LINUX)
ENDIF()
IF( XMU_FOUND )
   SET( X11_EXTRA_LIBS ${EXTRA_LIBS} ${XINERAMA_LIBRARIES} ${XRANDR_LIBRARIES}
                ${XMU_LIBRARIES}
                ${XFIXES_LIBRARIES} ${X11_LIBRARIES} ) 

   SET( XCM_X11_CFILES
	   ${CMAKE_CURRENT_SOURCE_DIR}/Xcm.c
	   ${CMAKE_CURRENT_SOURCE_DIR}/XcmEvents.c
      )
   SET(HAVE_X11 "#define XCM_HAVE_X11 1")

   IF(ENABLE_SHARED_LIBS)
     ADD_LIBRARY(           XcmX11 SHARED ${XCM_X11_CFILES} )
     SET_TARGET_PROPERTIES( XcmX11
    PROPERTIES VERSION ${PACKAGE_VERSION}
             SOVERSION ${${OPROJECT_NAME}_PACKAGE_MAJOR}
                     )
     TARGET_LINK_LIBRARIES( XcmX11 XcmEDID ${EXTRA_LIBS} ${X11_EXTRA_LIBS} )
     IF(ENABLE_INSTALL_XCM)
       INSTALL( TARGETS     XcmX11
         RUNTIME       DESTINATION ${CMAKE_INSTALL_BINDIR}
         LIBRARY       DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE       DESTINATION ${CMAKE_INSTALL_LIBDIR}
         )
     ENDIF(ENABLE_INSTALL_XCM)
   ENDIF(ENABLE_SHARED_LIBS)
   SET( XCM_X11_LIB "XcmX11" )
ELSE()
   UNSET(HAVE_X11)
ENDIF()

CONFIGURE_FILE (
    "${CMAKE_CURRENT_SOURCE_DIR}/../include/X11/Xcm/XcmVersion.h.in"
    "${CMAKE_BINARY_DIR}/src/include/X11/Xcm/XcmVersion.h"
    @ONLY
   )

SET( XCM_EDID_CFILES
   	 ${CMAKE_CURRENT_SOURCE_DIR}/XcmEdidParse.c
   )
IF(ENABLE_SHARED_LIBS)
  ADD_LIBRARY(           XcmEDID SHARED ${XCM_EDID_CFILES} )
  SET_TARGET_PROPERTIES( XcmEDID
    PROPERTIES VERSION ${PACKAGE_VERSION}
             SOVERSION ${${OPROJECT_NAME}_PACKAGE_MAJOR}
                     )
  TARGET_LINK_LIBRARIES( XcmEDID ${EXTRA_LIBS} )
  IF(ENABLE_INSTALL_XCM)
    INSTALL( TARGETS     XcmEDID
         RUNTIME       DESTINATION ${CMAKE_INSTALL_BINDIR}
         LIBRARY       DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE       DESTINATION ${CMAKE_INSTALL_LIBDIR}
         )
  ENDIF(ENABLE_INSTALL_XCM)
ENDIF(ENABLE_SHARED_LIBS)

SET( CFILES_OBJECT_CONFIG_PUBLIC
     ${XCM_EDID_CFILES}
     ${XCM_LINUX_CFILES}
     ${XCM_X11_CFILES}
   )
SET( CFILES_OBJECT_CONFIG_PUBLIC ${CFILES_OBJECT_CONFIG_PUBLIC} PARENT_SCOPE )
SET( CFILES_OBJECT_CONFIG
     ${CFILES_OBJECT_CONFIG_PUBLIC}
   )


SET( SOURCES ${CFILES_OBJECT_CONFIG} )

IF(APPLE)
ENDIF(APPLE)

IF(ENABLE_STATIC_LIBS)
  ADD_LIBRARY(       xcm-static STATIC ${SOURCES} )
  TARGET_LINK_LIBRARIES (
                     xcm-static
               ${EXTRA_LIBS} )
  IF(ENABLE_INSTALL_XCM)
    INSTALL( TARGETS xcm-static
           RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
           LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
           ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
  ENDIF(ENABLE_INSTALL_XCM)
ENDIF(ENABLE_STATIC_LIBS)

IF(ENABLE_SHARED_LIBS)
  ADD_LIBRARY( Xcm SHARED
	           ${CMAKE_CURRENT_SOURCE_DIR}/XcmDummy.c )
  SET_TARGET_PROPERTIES( Xcm
    PROPERTIES VERSION   ${PACKAGE_VERSION}
               SOVERSION ${${OPROJECT_NAME}_PACKAGE_MAJOR}
                     )
  TARGET_LINK_LIBRARIES (
             Xcm ${XCM_LINUX_LIB} XcmEDID ${XCM_X11_LIB}
             ${EXTRA_LIBS} )
  IF(ENABLE_INSTALL_XCM)
    INSTALL( TARGETS Xcm
         RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
  ENDIF(ENABLE_INSTALL_XCM)
ENDIF(ENABLE_SHARED_LIBS)

SET( SOURCES_STATIC ${SOURCES_STATIC} ${SOURCES} PARENT_SCOPE )
IF(HAVE_LINUX)
  SET( HAVE_LINUX ${HAVE_LINUX} PARENT_SCOPE )
  SET( PKG_CONFIG_LIBS_DDC -l${XCM_LINUX_LIB} PARENT_SCOPE )
  SET( PKG_CONFIG_PRIVATE_DDC_PKG xcm-ddc PARENT_SCOPE )
ENDIF(HAVE_LINUX)
IF(XMU_FOUND)
  SET( XMU_FOUND ${XMU_FOUND} PARENT_SCOPE )
  SET( PKG_CONFIG_LIBS_X11 -l${XCM_X11_LIB} PARENT_SCOPE )
  SET( PKG_CONFIG_PRIVATE_X11_PKG xcm-x11 PARENT_SCOPE )
  SET( PKG_CONFIG_PRIVATE_X11 "xproto x11" PARENT_SCOPE )
ENDIF(XMU_FOUND)

