# # A) Define the package # TRIBITS_PACKAGE(Zoltan) # # B) Set up package-specific options # TRIBITS_ADD_OPTION_AND_DEFINE( ${PACKAGE_NAME}_ENABLE_UINT_IDS UNSIGNED_INT_GLOBAL_IDS "typedef unsigned int ZOLTAN_ID_TYPE" OFF ) TRIBITS_ADD_OPTION_AND_DEFINE( ${PACKAGE_NAME}_ENABLE_ULONG_IDS UNSIGNED_LONG_GLOBAL_IDS "typedef unsigned long ZOLTAN_ID_TYPE" OFF ) TRIBITS_ADD_OPTION_AND_DEFINE( ${PACKAGE_NAME}_ENABLE_ULLONG_IDS UNSIGNED_LONG_LONG_GLOBAL_IDS "typedef unsigned long long ZOLTAN_ID_TYPE" OFF ) TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_HUND HAVE_ZOLTAN_HUND "Enable support for HUND in ${PACKAGE_NAME}." OFF ) TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_KNUTH_HASH HAVE_ZOLTAN_KNUTH_HASH "Enable support for Knuth's hash function in ${PACKAGE_NAME}." OFF ) TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_F90INTERFACE BUILD_ZOLTAN_F90_INTERFACE "Enable build of F90 interface to ${PACKAGE_NAME}." OFF ) TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_PURIFY HAVE_PURIFY "Enable work-arounds to purify bugs." OFF ) OPTION(${PACKAGE_NAME}_ENABLE_CPPDRIVER "Enable C++ driver for ${PACKAGE_NAME}." ${${PROJECT_NAME}_ENABLE_CXX} ) IF (${PROJECT_NAME}_ENABLE_CXX) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_IGNORE_CXX_SEEK") ENDIF() IF(${PROJECT_NAME}_ENABLE_Fortran AND BUILD_ZOLTAN_F90_INTERFACE) # Special Fortran compiler-specific flags IF (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPGI") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPGI") ENDIF() IF (${CMAKE_Fortran_COMPILER_ID} MATCHES "LAHEY") SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DFUJITSU") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFUJITSU") ENDIF() SET(ZOLTAN_BUILD_ZFDRIVE YES) ENDIF() # # C) Add the libraries, tests, and examples # IF (NOT TPL_ENABLE_MPI) ADD_SUBDIRECTORY(siMPI) SET(ZOLTAN_BUILD_ZFDRIVE NO) ENDIF() ADD_SUBDIRECTORY(src) #TRIBITS_ADD_TEST_DIRECTORIES(src/driver) IF(ZOLTAN_BUILD_ZFDRIVE) # CMAKE version > 2.6.4 is needed; earlier versions use C++ compiler to link # fdriver, while fdriver needs F90. TRIBITS_ADD_TEST_DIRECTORIES(src/fdriver) ENDIF() #TRIBITS_ADD_TEST_DIRECTORIES(test) #TRIBITS_ADD_EXAMPLE_DIRECTORIES(example) TRIBITS_EXCLUDE_FILES( test/ch_brack2_3 test/ch_bug test/ch_degenerate test/ch_degenerateAA test/ch_drake test/ch_grid20x19 test/ch_hammond test/ch_hammond2 test/ch_hughes test/ch_nograph test/ch_onedbug test/ch_random test/ch_serial test/ch_slac test/hg_cage10 test/hg_diag500_4 test/hg_ewgt test/hg_felix test/hg_ibm03 test/hg_ml27 test/hg_nograph test/hg_vwgt test/nem_ti_20k test/nem_ti_4k test/misc_siefert test/th test/bin doc/Zoltan_html/tu_html src/ZoltanComponent src/driver_old src/fdriver_old ) # # D) Do standard postprocessing # TRIBITS_PACKAGE_POSTPROCESS()