PROJECT(GAMBITTool)
set(LOCAL_PROJECT_NAME GAMBITTool)

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

# Configure Dart testing support.
OPTION(BUILD_TESTING "Compile Testing." OFF)
IF(BUILD_TESTING)
  ENABLE_TESTING()
  INCLUDE(CTest)
ENDIF(BUILD_TESTING)

FIND_PACKAGE(Slicer3 QUIET NO_DEFAULT_PATH)
IF (Slicer3_FOUND)
  INCLUDE(${Slicer3_USE_FILE})
  slicer3_set_default_install_prefix_for_external_projects()
ELSE (Slicer3_FOUND)
  FIND_PACKAGE(GenerateCLP REQUIRED)
  IF(GenerateCLP_FOUND)
    INCLUDE(${GenerateCLP_USE_FILE})
  ELSE(GenerateCLP_FOUND)
    MESSAGE(FATAL_ERROR, "GenerateCLP not found. Please set GenerateCLP_DIR.")
  ENDIF(GenerateCLP_FOUND)
ENDIF (Slicer3_FOUND)

FIND_PACKAGE(BatchMake REQUIRED)
IF (BatchMake_FOUND)
INCLUDE(${BatchMake_USE_FILE})
ELSE(BatchMake_FOUND)
  MESSAGE(FATAL_ERROR, "BatchMake not found. Please set BatchMake_DIR.")
ENDIF (BatchMake_FOUND)

SET (GAMBIT_SOURCE GAMBIT.cxx GAMBITParameters.cxx GAMBITComputation.cxx)
GENERATECLP(GAMBIT_SOURCE GAMBIT.xml)
ADD_EXECUTABLE (GAMBIT ${GAMBIT_SOURCE})
TARGET_LINK_LIBRARIES(GAMBIT ${BatchMake_LIBRARIES})

IF (Slicer3_FOUND)
  slicer3_set_plugins_output_path(GAMBIT)
  slicer3_install_plugins(GAMBIT)
ENDIF (Slicer3_FOUND)

ADD_TEST(GAMBITTest1 ${LIBRARY_OUTPUT_PATH}/Slicer3/Plugins/GAMBIT --help)
ADD_TEST(GAMBITTest2 ${LIBRARY_OUTPUT_PATH}/Slicer3/Plugins/GAMBIT --xml)

INSTALL(TARGETS
  GAMBIT
  BUNDLE DESTINATION  bin
  RUNTIME DESTINATION bin
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib/static
)
