# This module defines # CORE_INCS # List of include file paths for all required modules for GSI # CORE_LIBRARIES # Full list of libraries required to link GSI executable include(findHelpers) if(DEFINED ENV{W3EMC_VER}) set(W3EMC_VER $ENV{W3EMC_VER}) set(W3EMCINC $ENV{W3EMC_INCd} ) set(W3EMC4INC $ENV{W3EMC_INC4} ) STRING(REGEX REPLACE "v" "" W3EMC_VER ${W3EMC_VER}) endif() if(DEFINED ENV{W3EMC_LIBd}) set(W3EMC_LIBRARY $ENV{W3EMC_LIBd} ) set(W3EMCINC $ENV{W3EMC_INCd} ) set(W3EMC_4_LIBRARY $ENV{W3EMC_LIB4} ) set(W3EMC4INC $ENV{W3EMC_INC4} ) message("Setting W3EMC library via environment variable ${W3EMC_LIBRARY}") endif() set( NO_DEFAULT_PATH ) if((NOT BUILD_W3EMC ) AND ( NOT DEFINED W3EMC_LIBRARY )) if(DEFINED ENV{W3EMC_LIB} ) set(W3EMC_LIBRARY $ENV{W3EMC_LIB} ) set(W3EMCINC $ENV{W3EMC_INC} ) set(W3EMC_4_LIBRARY $ENV{W3EMC_LIB4} ) set(W3EMC4INC $ENV{W3EMC_INC4} ) message("W3EMC library ${W3EMC_LIBRARY} set via Environment variable") message("W3EMC_4 library ${W3EMC_4_LIBRARY} set via Environment variable") else() find_path( W3EMCINC NAMES mersenne_twister.mod HINTS $ENV{COREPATH}/lib/incmod/w3emc_d $ENV{COREPATH}/include /usr/local/jcsda/nwprod_gdas_2014/lib/incmod/w3emc_d ${COREPATH}/w3emc/v${W3EMC_VER}/incmod/w3emc_v${W3EMC_VER}_d ${COREPATH}/w3emc/v${W3EMC_VER}/intel/w3emc_v${W3EMC_VER}_d ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/impi/${COMPILER_VERSION}/include/w3emc_v${W3EMC_VER}_d ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/smpi/${COMPILER_VERSION}/include/w3emc_v${W3EMC_VER}_d ) find_path( W3EMC4INC NAMES mersenne_twister.mod HINTS $ENV{COREPATH}/lib/incmod/w3emc_4 $ENV{COREPATH}/include /usr/local/jcsda/nwprod_gdas_2014/lib/incmod/w3emc_4 ${COREPATH}/w3emc/v${W3EMC_VER}/incmod/w3emc_v${W3EMC_VER}_4 ${COREPATH}/w3emc/v${W3EMC_VER}/intel/w3emc_v${W3EMC_VER}_4 ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/impi/${COMPILER_VERSION}/include/w3emc_v${W3EMC_VER}_4 ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/smpi/${COMPILER_VERSION}/include/w3emc_v${W3EMC_VER}_4 ) find_library( W3EMC_LIBRARY NAMES libw3emc_d.a libw3emc_v${W3EMC_VER}_d.a HINTS $ENV{COREPATH}/lib /usr/local/jcsda/nwprod_gdas_2014 ${COREPATH}/w3emc/v${W3EMC_VER} ${COREPATH}/w3emc/v${W3EMC_VER}/intel ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/impi/${COMPILER_VERSION} ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/smpi/${COMPILER_VERSION} PATH_SUFFIXES lib ${NO_DEFAULT_PATH}) find_library( W3EMC_4_LIBRARY NAMES libw3emc_4.a libw3emc_i4r4.a libw3emc_v${W3EMC_VER}_4.a HINTS $ENV{COREPATH}/lib /usr/local/jcsda/nwprod_gdas_2014 ${COREPATH}/w3emc/v${W3EMC_VER} ${COREPATH}/w3emc/v${W3EMC_VER}/intel ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/impi/${COMPILER_VERSION} ${COREPATH}/w3emc/v${W3EMC_VER}/ips/${COMPILER_VERSION}/smpi/${COMPILER_VERSION} PATH_SUFFIXES lib ${NO_DEFAULT_PATH}) message("Found W3EMC_4 library ${W3EMC_4_LIBRARY}") endif() endif() if( NOT W3EMC_LIBRARY ) # didn't find the library, so build it from source message("Could not find W3EMC library, so building from libsrc") if( NOT DEFINED ENV{W3EMC_SRC} ) findSrc( "w3emc" W3EMC_VER W3EMC_DIR ) set(W3EMCINC "${CMAKE_BINARY_DIR}/include" CACHE STRING "W3EMC Include Directory") set(W3EMC4INC "${CMAKE_BINARY_DIR}/include" CACHE STRING "W3EMC4 Include Directory") else() set( W3EMC_DIR "$ENV{W3EMC_SRC}/libsrc" CACHE STRING "W3EMC Source Location") endif() set( libsuffix "_v${W3EMC_VER}${debug_suffix}" ) set( W3EMC_LIBRARY "${LIBRARY_OUTPUT_PATH}/libw3emc${libsuffix}.a" CACHE STRING "W3EMC Library" ) set( w3emc "w3emc${libsuffix}") set( w3emc4 "w3emc_4${libsuffix}") set( BUILD_W3EMC "ON" CACHE INTERNAL "Build the W3EMC library") add_subdirectory(${CMAKE_SOURCE_DIR}/libsrc/w3emc) set( W3EMC_LIBRARY ${w3emc} ) set( W3EMC_4_LIBRARY ${w3emc} ) set(W3EMCINC "${CMAKE_BINARY_DIR}/include" CACHE STRING "W3EMC Include Directory") set(W3EMC4INC ${CMAKE_INCLUDE_4_OUTPUT_DIRECTORY} CACHE STRING "W3EMC4 Include Directory") if( CORE_BUILT ) list( APPEND CORE_BUILT ${W3EMC_LIBRARY} ) list( APPEND CORE_BUILT ${W3EMC_4_LIBRARY} ) else() set( CORE_BUILT ${W3EMC_LIBRARY} ) set( CORE_BUILT ${W3EMC_4_LIBRARY} ) endif() else( NOT W3EMC_LIBRARY ) if( CORE_LIBRARIES ) list( APPEND CORE_LIBRARIES ${W3EMC_LIBRARY} ) else() set( CORE_LIBRARIES ${W3EMC_LIBRARY} ) endif() endif( NOT W3EMC_LIBRARY ) if( CORE_INCS ) list( APPEND CORE_INCS ${W3EMCINC} ) else() set( CORE_INCS ${INCLUDE_OUTPUT_PATH} ${W3EMCINC} ) endif() set( W3EMC_LIBRARY_PATH ${W3EMC_LIBRARY} CACHE STRING "W3EMC Library Location" ) set( W3EMC_INCLUDE_PATH ${W3EMCINC} CACHE STRING "W3EMC Include Location" ) set( W3EMC_4_LIBRARY_PATH ${W3EMC_4_LIBRARY} CACHE STRING "W3EMC_4 Library Location" ) set( W3EMC_INCLUDE_4_PATH ${W3EMC4INC} CACHE STRING "W3EMC_4 Include Location" )