@@ -229,28 +229,34 @@ if(WIN32)
229229 # the import library is "re-linked" to include kmp_import.cpp which prevents
230230 # linking of both Visual Studio OpenMP and newly built OpenMP
231231 set_source_files_properties (kmp_import.cpp PROPERTIES COMPILE_FLAGS "${LIBOMP_CONFIGURED_CXXFLAGS} " )
232- set (LIBOMP_IMP_LIB_FILE ${LIBBOLT_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX } )
232+ set (LIBOMP_IMP_LIB_FILE ${LIBBOLT_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX } )
233233 set (LIBOMP_GENERATED_IMP_LIB_FILENAME ${LIBOMP_LIB_FILE}${CMAKE_STATIC_LIBRARY_SUFFIX} )
234234 set_target_properties (bolt-omp PROPERTIES
235235 VERSION ${LIBBOLT_VERSION_MAJOR} .${LIBBOLT_VERSION_MINOR} # uses /version flag
236236 IMPORT_PREFIX "" IMPORT_SUFFIX "" # control generated import library name when building omp
237237 ARCHIVE_OUTPUT_NAME ${LIBOMP_GENERATED_IMP_LIB_FILENAME}
238238 )
239- # Get generated import library from creating omp
240- get_target_property (LIBOMP_IMPORT_LIB_DIRECTORY bolt-omp ARCHIVE_OUTPUT_DIRECTORY )
241- if (LIBOMP_IMPORT_LIB_DIRECTORY)
242- set (LIBOMP_GENERATED_IMP_LIB ${LIBOMP_IMPORT_LIB_DIRECTORY} /${LIBOMP_GENERATED_IMP_LIB_FILENAME} )
239+
240+ if (MSVC )
241+ # Get generated import library from creating omp
242+ get_target_property (LIBOMP_IMPORT_LIB_DIRECTORY bolt-omp ARCHIVE_OUTPUT_DIRECTORY )
243+ if (LIBOMP_IMPORT_LIB_DIRECTORY)
244+ set (LIBOMP_GENERATED_IMP_LIB ${LIBOMP_IMPORT_LIB_DIRECTORY} /${LIBOMP_GENERATED_IMP_LIB_FILENAME} )
245+ else ()
246+ set (LIBOMP_GENERATED_IMP_LIB ${CMAKE_CURRENT_BINARY_DIR} /${LIBOMP_GENERATED_IMP_LIB_FILENAME} )
247+ endif ()
248+ set_source_files_properties (${LIBOMP_GENERATED_IMP_LIB} PROPERTIES GENERATED TRUE EXTERNAL_OBJECT TRUE )
249+ # Create new import library that is just the previously created one + kmp_import.cpp
250+ add_library (bolt-ompimp STATIC ${LIBOMP_GENERATED_IMP_LIB} kmp_import.cpp)
251+ set_target_properties (bolt-ompimp PROPERTIES
252+ PREFIX "" SUFFIX "" OUTPUT_NAME "${LIBOMP_IMP_LIB_FILE} "
253+ LINKER_LANGUAGE C
254+ )
255+ add_dependencies (bolt-ompimp bolt-omp) # ensure generated import library is created first
256+ set (LIBOMP_IMP_LIB_TARGET bolt-ompimp)
243257 else ()
244- set (LIBOMP_GENERATED_IMP_LIB ${CMAKE_CURRENT_BINARY_DIR} / ${LIBOMP_GENERATED_IMP_LIB_FILENAME} )
258+ set (LIBOMP_IMP_LIB_TARGET bolt-omp )
245259 endif ()
246- set_source_files_properties (${LIBOMP_GENERATED_IMP_LIB} PROPERTIES GENERATED TRUE EXTERNAL_OBJECT TRUE )
247- # Create new import library that is just the previously created one + kmp_import.cpp
248- add_library (bolt-ompimp STATIC ${LIBOMP_GENERATED_IMP_LIB} kmp_import.cpp)
249- set_target_properties (bolt-ompimp PROPERTIES
250- PREFIX "" SUFFIX "" OUTPUT_NAME "${LIBOMP_IMP_LIB_FILE} "
251- LINKER_LANGUAGE C
252- )
253- add_dependencies (bolt-ompimp bolt-omp) # ensure generated import library is created first
254260
255261 # Create def file to designate exported functions
256262 libomp_get_gdflags(LIBOMP_GDFLAGS) # generate-def.pl flags (Windows only)
@@ -324,7 +330,7 @@ else()
324330endif ()
325331if (WIN32 )
326332 install (TARGETS bolt-omp RUNTIME DESTINATION bin)
327- install (TARGETS bolt-ompimp ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR} " )
333+ install (TARGETS ${LIBOMP_IMP_LIB_TARGET} ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR} " )
328334 # Create aliases (regular copies) of the library for backwards compatibility
329335 set (LIBOMP_ALIASES "libomp;libiomp5md" )
330336 foreach (alias IN LISTS LIBOMP_ALIASES)
0 commit comments