
CMAKE_MINIMUM_REQUIRED(VERSION 3.12...3.19)

PROJECT(testngppst)

INCLUDE(ProjectVar.txt)

IF(NOT WIN32)
FIND_LIBRARY(DL_LIBRARY NAMES dl)
IF(DL_LIBRARY)
  SET(TESTNGPPST_USE_DLOPEN TRUE)
ELSE(DL_LIBRARY)
  SET(TESTNGPPST_USE_DLOPEN FALSE)
ENDIF(DL_LIBRARY)

FIND_LIBRARY(LTDL_LIBRARY NAMES ltdl)
IF(LTDL_LIBRARY)
  SET(TESTNGPPST_USE_LTDL TRUE)
ELSE(LTDL_LIBRARY)
  SET(TESTNGPPST_USE_LTDL FALSE)
ENDIF(LTDL_LIBRARY)
ELSE(NOT WIN32)
  SET(TESTNGPP_USE_DLOPEN FALSE)
  SET(TESTNGPP_USE_LTDL FALSE)
ENDIF(NOT WIN32)

IF(MSVC OR MINGW)
  SET(TESTNGPPST_USE_LOADLIBRARY TRUE)
ELSE(MSVC OR MINGW)
  SET(TESTNGPPST_USE_LOADLIBRARY FALSE)
ENDIF(MSVC OR MINGW)

IF(CMAKE_CL_64)
    ADD_DEFINITIONS(-DWIN64)
ENDIF(CMAKE_CL_64)

ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(src/utils)
ADD_SUBDIRECTORY(src/except)
ADD_SUBDIRECTORY(src/mem_checker)
ADD_SUBDIRECTORY(src/listeners)
ADD_SUBDIRECTORY(src/runner)
ADD_SUBDIRECTORY(scripts)

########################################################
INSTALL(DIRECTORY include/testngppst DESTINATION include
          PATTERN ".svn" EXCLUDE
          PATTERN "comm" EXCLUDE
          PATTERN "runner" EXCLUDE
          PATTERN "win32" EXCLUDE)
		  
INSTALL(FILES include/testngppst/runner/loaders/ModuleLoader.h 
		  DESTINATION include/testngppst/runner/loaders)
		  
INSTALL(DIRECTORY 3rdparty/mem_checker DESTINATION 3rdparty
          PATTERN ".svn" EXCLUDE)
		  
IF(USING_AS_TESTCPP)
  INSTALL(DIRECTORY include/testcpp DESTINATION include
          PATTERN ".svn" EXCLUDE)
ENDIF(USING_AS_TESTCPP)

IF(USING_AS_CXXTEST)
  INSTALL(DIRECTORY include/cxxtest DESTINATION include
          PATTERN ".svn" EXCLUDE)
ENDIF(USING_AS_CXXTEST)

