###-------------------------------------------------------------------------### ### CMakeList.txt for examples using pio ###-------------------------------------------------------------------------### #============================================================================== # HELPER MACROS #============================================================================== include(SPIOUtils) #============================================================================== # SET THE COMPILER OPTIONS #============================================================================== # Include PIO include and lib directories INCLUDE_DIRECTORIES(${PIO_INCLUDE_DIRS}) include_directories("${SCORPIO_SOURCE_DIR}/examples/adios") LINK_DIRECTORIES(${PIO_LIB_DIR}) # Compiler-specific compiler options string (TOUPPER "${CMAKE_C_COMPILER_ID}" CMAKE_C_COMPILER_NAME) if (CMAKE_C_COMPILER_NAME STREQUAL "CRAY") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -h std=c99") elseif (CMAKE_C_COMPILER_NAME STREQUAL "PGI") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -c99") else () set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") endif () string (TOUPPER "${CMAKE_CXX_COMPILER_ID}" CMAKE_CXX_COMPILER_NAME) if (CMAKE_CXX_COMPILER_NAME STREQUAL "CRAY") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -h std=c++11") else () set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") endif () set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g -O0") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0") #============================================================================== # FIND EXTERNAL LIBRARIES/DEPENDENCIES #============================================================================== #===== MPI ===== if (PIO_USE_MPISERIAL) find_package (MPISERIAL COMPONENTS C Fortran REQUIRED) if (MPISERIAL_C_FOUND) set (CMAKE_REQUIRED_INCLUDES ${MPISERIAL_C_INCLUDE_DIRS}) endif () else () find_package (MPI REQUIRED) set (CMAKE_REQUIRED_INCLUDES ${MPI_INCLUDE_PATH}) endif () # Check for MPI Fortran module find_path(MPIMOD_PATH NAMES mpi.mod MPI.mod HINTS ${MPI_Fortran_INCLUDE_PATH}) if (PIO_ENABLE_TIMING) find_package (GPTL COMPONENTS Fortran_Perf QUIET) endif () check_macro (MPI_HAS_Fortran_MOD NAME TryMPIMod.f90 HINTS ${CMAKE_MODULE_PATH} DEFINITIONS -I${MPIMOD_PATH} COMMENT "whether MPI Fortran module is supported") if (${MPI_HAS_Fortran_MOD}) message (STATUS "MPI Fortran module verified and enabled.") else () message (STATUS "MPI Fortran module failed verification and therefore disabled.") endif () #===== GPTL Library ===== if (PIO_ENABLE_TIMING) find_package (GPTL COMPONENTS C Fortran_Perf QUIET) if (GPTL_C_FOUND) message (STATUS "Found GPTL C: ${GPTL_C_LIBRARIES}") else () message (STATUS "Using internal GPTL C library for timing") endif () if (GPTL_Fortran_Perf_FOUND) message (STATUS "Found GPTL Fortran Perf: ${GPTL_Fortran_Perf_LIBRARIES}") else () message (STATUS "Using internal GPTL Fortran library for timing") endif () endif () #============================================================================== # DEFINE THE TARGETS AND TESTS #============================================================================== add_spio_executable(example3 TRUE "" example3.c) add_spio_executable(timesteps TRUE "" timesteps.c) add_spio_executable(timesteps_double TRUE "" timesteps_double.c) add_spio_executable(example_num_frames TRUE "" example_num_frames.c) if (PIO_ENABLE_FORTRAN) if (WITH_ADIOS) # Adding PIO definitions - defined in the root directory ADD_DEFINITIONS(${PIO_DEFINITIONS}) # Include PIO include and lib directories INCLUDE_DIRECTORIES(${PIO_INCLUDE_DIRS}) LINK_DIRECTORIES(${PIO_LIB_DIR}) add_spio_executable(examplePioADIOS_f90 FALSE "" examplePioADIOS.f90) endif(WITH_ADIOS) endif(PIO_ENABLE_FORTRAN)