Skip to content

Commit 131b3c2

Browse files
committed
Cloned the building method to the C++ CepGenProcessExample repo
1 parent 6f0e365 commit 131b3c2

File tree

3 files changed

+59
-11
lines changed

3 files changed

+59
-11
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
*.o
22
*.so
3+
build/
4+
install/
5+
__pycache__/

CMakeLists.txt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
2-
project(CepGenGrapeProcess)
32
enable_language(Fortran)
4-
5-
set(CEPGEN_PATH ${CEPGEN_PATH} $ENV{CEPGEN_PATH})
6-
if(NOT CEPGEN_PATH)
7-
set(CEPGEN_PATH /usr/local)
8-
endif()
93
if(NOT PROCESS_NAME)
10-
set(PROCESS_NAME FortranProcess)
4+
set(PROCESS_NAME CepGenFortranProcessExample) # replace this with the beautiful name of your process
115
endif()
12-
set(CMAKE_MODULE_PATH ${CEPGEN_PATH}/cmake)
6+
7+
project(${PROCESS_NAME})
8+
9+
set(CEPGEN_PATH ${CEPGEN_PATH} $ENV{CEPGEN_PATH})
10+
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CEPGEN_PATH}/cmake)
11+
1312
find_package(CepGen REQUIRED)
1413

1514
file(GLOB SOURCES *.cpp)
1615
file(GLOB_RECURSE F77_SOURCES src/*.f)
1716

18-
add_library(CepGen${PROCESS_NAME} SHARED ${SOURCES} ${F77_SOURCES})
19-
target_link_libraries(CepGen${PROCESS_NAME} PRIVATE ${CepGen_LIBRARIES})
20-
target_include_directories(CepGen${PROCESS_NAME} PRIVATE ${CepGen_INCLUDE_DIRS})
17+
add_library(${PROCESS_NAME} SHARED ${SOURCES} ${F77_SOURCES})
18+
target_link_libraries(${PROCESS_NAME} PRIVATE CepGen::CepGen)
19+
20+
# in case you need to link your process definition with other external libraries, you can use
21+
# the standard CMake directives:
22+
#target_link_libraries(${PROCESS_NAME} PUBLIC ${other_LIBRARIES})
23+
#target_include_directories(${PROCESS_NAME} PRIVATE ${other_INCLUDE_DIRS})
2124

2225
file(GLOB_RECURSE input_cards RELATIVE ${PROJECT_SOURCE_DIR} cards/*)
2326
foreach(_files ${input_cards})

cmake/FindCepGen.cmake

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
find_package(PkgConfig)
2+
pkg_check_modules(PC_CepGen QUIET CepGen)
3+
4+
set(CEPGEN_PATHS $ENV{CEPGEN_PATH} ${CEPGEN_PATH})
5+
6+
find_path(CepGen_INCLUDE_DIR
7+
NAMES CepGen/Generator.h
8+
PATHS ${PC_CepGen_INCLUDE_DIRS} ${CEPGEN_PATHS}
9+
PATH_SUFFIXES include)
10+
find_path(CepGen_DATA_DIR
11+
NAMES mstw_sf_scan_nnlo.dat
12+
PATHS ${PC_CepGen_INCLUDE_DIRS} ${CEPGEN_PATHS}
13+
PATH_SUFFIXES share External)
14+
find_library(CepGen_LIBRARY
15+
NAMES CepGen
16+
PATHS ${PC_CepGEN_LIBRARY_DIRS} ${CEPGEN_PATHS}
17+
PATH_SUFFIXES lib64 lib build)
18+
19+
include(FindPackageHandleStandardArgs)
20+
find_package_handle_standard_args(CepGen
21+
FOUND_VAR CepGen_FOUND
22+
REQUIRED_VARS CepGen_LIBRARY CepGen_INCLUDE_DIR
23+
VERSION_VAR CepGen_VERSION)
24+
25+
if(CepGen_FOUND)
26+
set(CepGen_LIBRARIES ${CepGen_LIBRARY})
27+
set(CepGen_INCLUDE_DIRS ${CepGen_INCLUDE_DIR})
28+
set(CepGen_DATA_DIRS ${CepGen_DATA_DIR})
29+
set(CepGen_DEFINITIONS ${PC_CepGen_CFLAGS_OTHER})
30+
else()
31+
message(STATUS "CepGen path was not found. Did you set the $CEPGEN_PATH environment variable?")
32+
endif()
33+
34+
if(CepGen_FOUND AND NOT TARGET CepGen::CepGen)
35+
add_library(CepGen::CepGen UNKNOWN IMPORTED)
36+
set_target_properties(CepGen::CepGen PROPERTIES
37+
IMPORTED_LOCATION "${CepGen_LIBRARY}"
38+
INTERFACE_COMPILE_OPTIONS "${PC_CepGen_CFLAGS_OTHER}"
39+
INTERFACE_INCLUDE_DIRECTORIES "${CepGen_INCLUDE_DIR}")
40+
endif()
41+
42+
mark_as_advanced(CepGen_INCLUDE_DIR CepGen_LIBRARY)

0 commit comments

Comments
 (0)