#This file shows how to link to a PUMI #installation using CMake #it represents a simple 'CMakeLists.txt' #file for a new project cmake_minimum_required(VERSION 3.5) project(myproject VERSION 1.0.0 LANGUAGES CXX) # Starting here are the critical lines: # Allow the user to indicate where they installed SCOREC # via "-DSCOREC_PREFIX=/home/somewhere" when calling `cmake` set(SCOREC_PREFIX "" CACHE STRING "Directory where SCOREC is installed") # If SCOREC_PREFIX was specified, only link to that directory, # i.e. don't link to another installation in /usr/lib by mistake if (SCOREC_PREFIX) find_package(SCOREC 4 REQUIRED CONFIG PATHS ${SCOREC_PREFIX} NO_DEFAULT_PATH) else() # IF SCOREC_PREFIX was not specified, look in typical system directories, # and also in CMAKE_PREFIX_PATH (environment variable) find_package( SCOREC #package name, has to be SCOREC 4 #version. can be omitted, and will match any installed version #greater than or equal to this one, as long as the major number #is the same REQUIRED #indicate that SCOREC is really needed to compile CONFIG #skip the 'MODULE' search system, save some time and confusion ) endif() #this is just example code, do your own thing add_library(mylibrary mylibrary.cpp) add_executable(myprogram myprogram.cpp) target_include_directories(myprogram PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) #for any targets that use PUMI, just use this command #to it to include the right directories and link to all #the scorec libraries automatically. #we recommend PUBLIC if the target is a library and #PRIVATE if the target is an executable target_link_libraries(mylibrary PUBLIC SCOREC::core) target_link_libraries(myprogram PRIVATE mylibrary)