@@ -48,8 +48,6 @@ set( HYPERDAGS_BACKEND_INSTALL_DIR "${BINARY_LIBRARIES_INSTALL_DIR}/hyperdags" )
4848set ( BSP1D_BACKEND_INSTALL_DIR "${BINARY_LIBRARIES_INSTALL_DIR} /spmd" )
4949set ( HYBRID_BACKEND_INSTALL_DIR "${BINARY_LIBRARIES_INSTALL_DIR} /hybrid" )
5050
51-
52-
5351# addBackendWrapperGenOptions
5452# creates the variables to store the settings for a backend, in order to create
5553# the wrapper scripts for the installation; unless otherwise specified, arguments
@@ -69,42 +67,31 @@ set( HYBRID_BACKEND_INSTALL_DIR "${BINARY_LIBRARIES_INSTALL_DIR}/hybrid" )
6967# WARNING! do NOT turn this into a macro, otherwise escaped paths don't work anymore
7068# since they are expanded as macro arguments
7169#
72- function ( addBackendWrapperGenOptions backend )
70+ function ( addBackendWrapperGenOptions backend lib_dir )
7371 set ( multiValueArgs "COMPILER_COMMAND;RUNNER"
74- "COMPILE_DEFINITIONS;COMPILE_OPTIONS;LINK_FLAGS;LIB_DIR "
72+ "COMPILE_DEFINITIONS;COMPILE_OPTIONS;LINK_FLAGS"
7573 )
76- cmake_parse_arguments ( parsed "${options} " "${oneValueArgs} "
74+ cmake_parse_arguments ( parsed "${options} " ""
7775 "${multiValueArgs} " "${ARGN} "
7876 )
7977
8078 if ( NOT "${backend} " IN_LIST AVAILABLE_BACKENDS )
8179 message ( FATAL_ERROR "cannot find ${backend} among available backends" )
8280 endif ()
8381
84- assert_valid_variables( parsed_LIB_DIR )
82+ assert_valid_variables( lib_dir )
8583
8684 set ( ${backend} _WRAPPER_COMPILER_COMMAND "${parsed_COMPILER_COMMAND} " PARENT_SCOPE )
8785 if ( NOT parsed_COMPILER_COMMAND )
8886 set ( ${backend} _WRAPPER_COMPILER_COMMAND "${CMAKE_CXX_COMPILER} " PARENT_SCOPE )
8987 endif ()
9088 set ( ${backend} _WRAPPER_RUNNER "${parsed_RUNNER} " PARENT_SCOPE )
91- set ( ${backend} _LIB_DIR "${parsed_LIB_DIR} " PARENT_SCOPE )
92-
89+ set ( ${backend} _LIB_DIR "${lib_dir} " PARENT_SCOPE )
9390 set ( ${backend} _WRAPPER_COMPILE_DEFINITIONS "${parsed_COMPILE_DEFINITIONS} " PARENT_SCOPE )
94-
9591 set ( ${backend} _WRAPPER_COMPILE_OPTIONS "${parsed_COMPILE_OPTIONS} " PARENT_SCOPE )
9692 set ( ${backend} _WRAPPER_LINK_FLAGS "${parsed_LINK_FLAGS} " PARENT_SCOPE )
9793endfunction ( addBackendWrapperGenOptions )
9894
99- ## compile definitions and options common to all backends: do not change!
100- set ( COMMON_WRAPPER_DEFINITIONS
101- "${REFERENCE_INCLUDE_DEFS} "
102- "${REFERENCE_OMP_INCLUDE_DEFS} "
103- )
104- set ( COMMON_WRAPPER_OPTIONS
105- "${OpenMP_CXX_FLAGS} "
106- )
107-
10895if ( WITH_NUMA )
10996 set ( NUMA_LFLAG "-lnuma" )
11097endif ()
@@ -113,36 +100,39 @@ endif()
113100# for each enabled backend, add its information for the wrapper generation
114101# paths may have spaces, hence wrap them inside single quotes ''
115102
103+ # all backends include both REFERENCE_INCLUDE_DEFS and REFERENCE_OMP_INCLUDE_DEFS,
104+ # due to the dependency on OpenMP -- to be resolved
105+
116106# shared memory backends
117107if ( WITH_REFERENCE_BACKEND )
118- addBackendWrapperGenOptions( "reference"
119- COMPILE_DEFINITIONS " ${REFERENCE_SELECTION_DEFS} "
120- LIB_DIR "${SHMEM_BACKEND_INSTALL_DIR } "
108+ addBackendWrapperGenOptions( "reference" " ${SHMEM_BACKEND_INSTALL_DIR} "
109+ COMPILE_DEFINITIONS
110+ "${REFERENCE_INCLUDE_DEFS} ; ${REFERENCE_OMP_INCLUDE_DEFS} ; ${REFERENCE_SELECTION_DEFS } "
121111 LINK_FLAGS "${NUMA_LFLAG} "
122112 )
123113endif ()
124114
125115if ( WITH_OMP_BACKEND )
126- addBackendWrapperGenOptions( "reference_omp"
127- COMPILE_DEFINITIONS "${REFERENCE_OMP_SELECTION_DEFS} "
128- LIB_DIR "${SHMEM_BACKEND_INSTALL_DIR} "
116+ addBackendWrapperGenOptions( "reference_omp" "${SHMEM_BACKEND_INSTALL_DIR} "
117+ COMPILE_DEFINITIONS
118+ "${REFERENCE_INCLUDE_DEFS} ;${REFERENCE_OMP_INCLUDE_DEFS} ;${REFERENCE_OMP_SELECTION_DEFS} "
119+ COMPILE_OPTIONS "-fopenmp"
129120 LINK_FLAGS "${NUMA_LFLAG} "
130121 )
131122endif ()
132123
133124# dependent backends
134125if ( WITH_HYPERDAGS_BACKEND )
135- addBackendWrapperGenOptions( "hyperdags"
136- COMPILE_DEFINITIONS " ${HYPERDAGS_SELECTION_DEFS} ; ${HYPERDAGS_INCLUDE_DEFS} "
137- LIB_DIR "${HYPERDAGS_BACKEND_INSTALL_DIR } "
126+ addBackendWrapperGenOptions( "hyperdags" " ${HYPERDAGS_BACKEND_INSTALL_DIR} "
127+ COMPILE_DEFINITIONS
128+ "${REFERENCE_INCLUDE_DEFS} ; ${REFERENCE_OMP_INCLUDE_DEFS} ; ${HYPERDAGS_INCLUDE_DEFS} ; ${HYPERDAGS_SELECTION_DEFS } "
138129 LINK_FLAGS "${NUMA_LFLAG} "
139130 )
140131endif ()
141132
142133if ( WITH_NONBLOCKING_BACKEND )
143- addBackendWrapperGenOptions( "nonblocking"
144- COMPILE_DEFINITIONS "${NONBLOCKING_SELECTION_DEFS} ;${NONBLOCKING_INCLUDE_DEFS} "
145- LIB_DIR "${SHMEM_BACKEND_INSTALL_DIR} "
134+ addBackendWrapperGenOptions( "nonblocking" "${SHMEM_BACKEND_INSTALL_DIR} "
135+ COMPILE_DEFINITIONS "${NONBLOCKING_INCLUDE_DEFS} ;${NONBLOCKING_SELECTION_DEFS} "
146136 LINK_FLAGS "${NUMA_LFLAG} "
147137 )
148138endif ()
@@ -170,22 +160,24 @@ if( WITH_BSP1D_BACKEND OR WITH_HYBRID_BACKEND )
170160 set ( MANUALRUN "${LPFRUN_CMD} " "${MANUALRUN_ARGS} " )
171161
172162 if ( WITH_BSP1D_BACKEND )
173- addBackendWrapperGenOptions( "bsp1d"
163+ addBackendWrapperGenOptions( "bsp1d" " ${BSP1D_BACKEND_INSTALL_DIR} "
174164 COMPILER_COMMAND "${LPF_CXX_COMPILER} "
175165 RUNNER "${LPFRUN_CMD} "
176- COMPILE_DEFINITIONS "${LPF_INCLUDE_DEFS} ;${BSP1D_SELECTION_DEFS} "
177- LIB_DIR "${BSP1D_BACKEND_INSTALL_DIR} "
178- LINK_FLAGS "${NUMA_LFLAG} " "-lpthread" "-lm"
166+ COMPILE_DEFINITIONS
167+ "${REFERENCE_INCLUDE_DEFS} ;${REFERENCE_OMP_INCLUDE_DEFS} ;${LPF_INCLUDE_DEFS} ;${BSP1D_SELECTION_DEFS} "
168+ COMPILE_OPTIONS "-fopenmp"
169+ LINK_FLAGS "${NUMA_LFLAG} "
179170 )
180171 endif ()
181172
182173 if ( WITH_HYBRID_BACKEND )
183- addBackendWrapperGenOptions( "hybrid"
174+ addBackendWrapperGenOptions( "hybrid" " ${HYBRID_BACKEND_INSTALL_DIR} "
184175 COMPILER_COMMAND "${LPF_CXX_COMPILER} "
185176 RUNNER "${LPFRUN_CMD} "
186- COMPILE_DEFINITIONS "${LPF_INCLUDE_DEFS} ;${HYBRID_SELECTION_DEFS} "
187- LIB_DIR "${HYBRID_BACKEND_INSTALL_DIR} "
188- LINK_FLAGS "${NUMA_LFLAG} " "-lpthread" "-lm"
177+ COMPILE_DEFINITIONS
178+ "${REFERENCE_INCLUDE_DEFS} ;${REFERENCE_OMP_INCLUDE_DEFS} ;${LPF_INCLUDE_DEFS} ;${HYBRID_SELECTION_DEFS} "
179+ COMPILE_OPTIONS "-fopenmp"
180+ LINK_FLAGS "${NUMA_LFLAG} "
189181 )
190182 endif ()
191183endif ()
0 commit comments