@@ -122,31 +122,38 @@ set_target_properties(${CBLASLIB}_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
122122
123123if (BUILD_INDEX64_EXT_API)
124124 # 64bit Integer Interface
125+ # Define list of C files
125126 set (SOURCES_64_C)
126- set (SOURCES_64_F)
127127 list (APPEND SOURCES_64_C ${SOURCES} )
128- list (APPEND SOURCES_64_F ${SOURCES} )
129128 list (FILTER SOURCES_64_C EXCLUDE REGEX "\. f$" )
130- list (FILTER SOURCES_64_F INCLUDE REGEX "\. f$" )
131129 list (REMOVE_ITEM SOURCES_64_C cblas_globals.c)
130+ # Define list of Fortran files
131+ set (SOURCES_64_F)
132+ list (APPEND SOURCES_64_F ${SOURCES} )
133+ list (FILTER SOURCES_64_F INCLUDE REGEX "\. f$" )
134+ # Copy files so we can set source property specific to /${CBLASLIB}_64_obj target
135+ file (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /${CBLASLIB} _64_fobj)
136+ file (COPY ${SOURCES_64_F} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} /${CBLASLIB} _64_fobj)
137+ file (GLOB SOURCES_64_F ${CMAKE_CURRENT_BINARY_DIR} /${CBLASLIB} _64_fobj/*)
138+ add_library (${CBLASLIB} _64_cobj OBJECT ${SOURCES_64_C} )
139+ add_library (${CBLASLIB} _64_fobj OBJECT ${SOURCES_64_F} )
140+ set_target_properties (${CBLASLIB} _64_cobj ${CBLASLIB} _64_fobj PROPERTIES
141+ POSITION_INDEPENDENT_CODE ON
142+ Fortran_PREPROCESS ON )
143+ target_compile_options (${CBLASLIB} _64_cobj PRIVATE -DWeirdNEC -DCBLAS_API64)
144+ target_compile_options (${CBLASLIB} _64_fobj PRIVATE ${FOPT_ILP64} )
132145 #Add suffix to all Fortran functions via macros
133- set (COPT_64_F)
134146 foreach (F IN LISTS SOURCES_64_F)
147+ set (COPT_64_F)
135148 file (STRINGS ${F} ${F} .lst)
136149 list (FILTER ${F} .lst INCLUDE REGEX "subroutine|external" )
137150 foreach (FUNC IN LISTS ${F} .lst)
138151 string (REGEX REPLACE "[ ]*(subroutine|external)[ ]*" "" FUNC ${FUNC} )
139152 string (REGEX REPLACE "[(][a-zA-Z0-9, ]*[)]" "" FUNC ${FUNC} )
140153 list (APPEND COPT_64_F "-D${FUNC} =${FUNC} _64" )
141154 endforeach ()
155+ set_source_files_properties (${F} PROPERTIES COMPILE_OPTIONS "${COPT_64_F} " )
142156 endforeach ()
143- add_library (${CBLASLIB} _64_cobj OBJECT ${SOURCES_64_C} )
144- add_library (${CBLASLIB} _64_fobj OBJECT ${SOURCES_64_F} )
145- set_target_properties (${CBLASLIB} _64_cobj ${CBLASLIB} _64_fobj PROPERTIES
146- POSITION_INDEPENDENT_CODE ON
147- Fortran_PREPROCESS ON )
148- target_compile_options (${CBLASLIB} _64_cobj PRIVATE -DWeirdNEC -DCBLAS_API64)
149- target_compile_options (${CBLASLIB} _64_fobj PRIVATE ${FOPT_ILP64} ${COPT_64_F} )
150157endif ()
151158
152159add_library (${CBLASLIB}
0 commit comments