PROJECT(NeL CXX C)

IF(WITH_STATIC_DRIVERS)
  ADD_DEFINITIONS(-DNL_STATIC)
ENDIF(WITH_STATIC_DRIVERS)

# On Windows we need to find DirectInput for NLMISC.
# This is how we get events.
IF(WIN32)
  FIND_PACKAGE(DirectXSDK)

  # On Win32 we can also build the MAX plugins.
  IF(WITH_MAXPLUGIN)
    FIND_PACKAGE(3dsMaxSDK)
  ENDIF(WITH_MAXPLUGIN)
ENDIF(WIN32)

IF(WITH_3D)
  FIND_PACKAGE(FreeType)

  IF(WITH_DRIVER_OPENGL)
    FIND_PACKAGE(OpenGL)
    IF(NOT WIN32)
      IF(APPLE)
        FIND_LIBRARY(CARBON NAMES Carbon)
        FIND_LIBRARY(COCOA NAMES Cocoa)
      ELSE(APPLE)
        FIND_PACKAGE(X11)
        FIND_PACKAGE(XF86VidMode)
        FIND_PACKAGE(XRandR)
      ENDIF(APPLE)
    ENDIF(NOT WIN32)
  ENDIF(WITH_DRIVER_OPENGL)

  IF(WITH_CEGUI)
    FIND_PACKAGE(CEGUI)
  ENDIF(WITH_CEGUI)

ENDIF(WITH_3D)

IF(WITH_SOUND)
  FIND_PACKAGE(Ogg)
  FIND_PACKAGE(Vorbis)

  IF(WITH_DRIVER_OPENAL)
    FIND_PACKAGE(OpenAL)
  ENDIF(WITH_DRIVER_OPENAL)

  IF(WITH_DRIVER_FMOD)
    FIND_PACKAGE(FMOD)
  ENDIF(WITH_DRIVER_FMOD)
ENDIF(WITH_SOUND)

IF(WITH_MFC)
  FIND_PACKAGE(MFC)
ENDIF(WITH_MFC)

IF(WITH_GTK)
  FIND_PACKAGE(GTK2)
ENDIF(WITH_GTK)

IF(WITH_NEL_TESTS)
  FIND_PACKAGE(CppTest)
  
  ENABLE_TESTING()
  ADD_TEST(nel_unit_test ${EXECUTABLE_OUTPUT_PATH}/nel_unit_test --html)
  IF(BUILD_DASHBOARD)
    INCLUDE(Dart)
    SET(SVNCOMMAND svn)
    SET(SVNSOURCEDIR http://dev.ryzom.com/svn/trunk/nel)
    SET(GENERATELOGS svn2cl)
  ENDIF(BUILD_DASHBOARD)
ENDIF(WITH_NEL_TESTS)

IF(UNIX)
  SET(prefix ${CMAKE_INSTALL_PREFIX})
  SET(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
  SET(libdir "${CMAKE_INSTALL_PREFIX}/lib")
  SET(includedir "${CMAKE_INSTALL_PREFIX}/include")
  SET(enable_ligo ${WITH_LIGO})
  SET(enable_logic ${WITH_LOGIC})
  SET(enable_georges ${WITH_GEORGES})
  SET(enable_net ${WITH_NET})
  SET(enable_3d ${WITH_3D})
  SET(enable_pacs ${WITH_PACS})
  SET(enable_sound ${WITH_SOUND})
  CONFIGURE_FILE(nel-config.in nel-config)

  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/nel-config DESTINATION bin)
ENDIF(UNIX)

IF(NOT WIN32)
  NL_CONFIGURE_CHECKS()
ENDIF(NOT WIN32)

ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(src)

IF(WITH_NEL_SAMPLES)
  ADD_SUBDIRECTORY(samples)
ENDIF(WITH_NEL_SAMPLES)

IF(WITH_NEL_TOOLS)
  FIND_PACKAGE(Squish)
  ADD_SUBDIRECTORY(tools)
ENDIF(WITH_NEL_TOOLS)