Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…

PROJECT(MFU) | |
CMAKE_MINIMUM_REQUIRED(VERSION 3.1) | |
IF(POLICY CMP0042) | |
CMAKE_POLICY(SET CMP0042 NEW) | |
ENDIF(POLICY CMP0042) | |
SET(CMAKE_MACOSX_RPATH ON) | |
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | |
SET(CMAKE_POSITION_INDEPENDENT_CODE ON) | |
# Configuration Options | |
OPTION(ENABLE_XATTRS "Enable code for extended attributes" ON) | |
IF(ENABLE_XATTRS) | |
ADD_DEFINITIONS(-DDCOPY_USE_XATTRS) | |
ENDIF(ENABLE_XATTRS) | |
OPTION(ENABLE_LUSTRE "Enable optimization and features for Lustre" OFF) | |
IF(ENABLE_LUSTRE) | |
ADD_DEFINITIONS(-DLUSTRE_SUPPORT) | |
# todo investigate usage of other lustre #defs | |
# - LUSTRE_STAT | |
# - HAVE_LUSTRE_LUSTREAPI_H | |
# - HAVE_LUSTRE_LUSTRE_USER_H | |
ENDIF(ENABLE_LUSTRE) | |
OPTION(ENABLE_GPFS "Enable GFPS/Spectrum Scale support") | |
IF(ENABLE_GPFS) | |
FIND_PACKAGE(GPFS REQUIRED) | |
INCLUDE_DIRECTORIES(${GPFS_INCLUDE_DIRS}) | |
LIST(APPEND MFU_EXTERNAL_LIBS ${GPFS_LIBRARIES}) | |
ADD_DEFINITIONS(-DGPFS_SUPPORT) | |
ENDIF(ENABLE_GPFS) | |
OPTION(ENABLE_EXPERIMENTAL "Build experimental tools" OFF) | |
## HEADERS | |
INCLUDE(CheckIncludeFile) | |
CHECK_INCLUDE_FILE(byteswap.h HAVE_BYTESWAP_H) | |
if(HAVE_BYTESWAP_H) | |
ADD_DEFINITIONS(-DHAVE_BYTESWAP_H) | |
ELSE(HAVE_BYTESWAP_H) | |
MESSAGE(SEND_ERROR "byteswap.h is required") | |
ENDIF(HAVE_BYTESWAP_H) | |
# Dependencies | |
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") | |
## MPI | |
INCLUDE(SetupMPI) | |
INCLUDE_DIRECTORIES(${MPI_C_INCLUDE_PATH}) | |
LIST(APPEND MFU_EXTERNAL_LIBS ${MPI_C_LIBRARIES}) | |
## DTCMP | |
FIND_PACKAGE(DTCMP REQUIRED) | |
INCLUDE_DIRECTORIES(${DTCMP_INCLUDE_DIRS}) | |
LIST(APPEND MFU_EXTERNAL_LIBS ${DTCMP_LIBRARIES}) | |
## LIBARCHIVE | |
# TODO how would we pass a version from spack? | |
FIND_PACKAGE(LibArchive REQUIRED) | |
INCLUDE_DIRECTORIES(${LibArchive_INCLUDE_DIRS}) | |
LIST(APPEND MFU_EXTERNAL_LIBS ${LibArchive_LIBRARIES}) | |
## LIBCIRCLE | |
FIND_PACKAGE(LibCircle REQUIRED) | |
INCLUDE_DIRECTORIES(${LibCircle_INCLUDE_DIRS}) | |
LIST(APPEND MFU_EXTERNAL_LIBS ${LibCircle_LIBRARIES}) | |
## BZip2 | |
FIND_PACKAGE(BZip2 REQUIRED) | |
LIST(APPEND MFU_EXTERNAL_LIBS ${BZIP2_LIBRARIES}) | |
## OPENSSL for ddup | |
FIND_PACKAGE(OpenSSL) | |
# Setup Installation | |
INCLUDE(GNUInstallDirs) | |
SET(X_BINDIR ${CMAKE_INSTALL_FULL_BINDIR} CACHE INTERNAL "bin") | |
SET(X_DATADIR ${CMAKE_INSTALL_FULL_DATADIR} CACHE INTERNAL "share") | |
SET(X_INCLUDEDIR ${CMAKE_INSTALL_FULL_INCLUDEDIR} CACHE INTERNAL "include") | |
SET(X_LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR} CACHE INTERNAL "lib") | |
# Subdirectories | |
INCLUDE(MFU_ADD_TOOL) | |
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src/common) | |
ADD_SUBDIRECTORY(src) | |
ADD_SUBDIRECTORY(test) | |
ADD_SUBDIRECTORY(man) | |
IF(ENABLE_EXPERIMENTAL) | |
ADD_SUBDIRECTORY(experimental) | |
ENDIF(ENABLE_EXPERIMENTAL) |