@@ -20,6 +20,10 @@ IF(NOT TH_INSTALL_BIN_SUBDIR
2020 SET (TH_INSTALL_CMAKE_SUBDIR "share/cmake/TH" CACHE PATH "TH install cmake subdirectory" )
2121ENDIF ()
2222
23+ INCLUDE (CheckIncludeFile)
24+ INCLUDE (CheckCSourceCompiles)
25+ INCLUDE (CheckCSourceRuns)
26+
2327#######################################################################
2428##### flags section
2529######################################################################
@@ -43,6 +47,30 @@ IF(UNIX)
4347ENDIF (UNIX )
4448
4549# OpenMP support?
50+ FIND_PACKAGE (MKL)
51+ MESSAGE (STATUS ${MKL_LIBRARIES} )
52+ IF (MKL_FOUND AND CMAKE_COMPILER_IS_GNUCC)
53+ MESSAGE (WARNING "MKL needs libiomp to use multithreading that conflicts with "
54+ "gcc's libgomp. Trying to hack around that." )
55+
56+ SET (BACKUP_FLAGS ${CMAKE_REQUIRED_FLAGS} )
57+ SET (CMAKE_REQUIRED_FLAGS "-Wl,--as-needed" ${CMAKE_REQUIRED_FLAGS} )
58+ CHECK_C_SOURCE_RUNS("
59+ int main()
60+ {
61+ return 0;
62+ }" HAVE_LINK_AS_NEEDED)
63+ SET (CMAKE_REQUIRED_FLAGS ${BACKUP_FLAGS} )
64+
65+ IF (HAVE_LINK_AS_NEEDED)
66+ MESSAGE (STATUS "Adding -Wl,--as-needed" )
67+ SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--as-needed" )
68+ ELSE ()
69+ MESSAGE (WARNING "--as-needed flag not supported. OMP might not work properly" )
70+ ENDIF ()
71+ ENDIF ()
72+
73+
4674SET (WITH_OPENMP ON CACHE BOOL "OpenMP support if available?" )
4775IF (APPLE AND CMAKE_COMPILER_IS_GNUCC)
4876 EXEC_PROGRAM (uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION)
@@ -89,8 +117,6 @@ IF (CORTEXA9_FOUND)
89117 SET (CMAKE_C_FLAGS "-mcpu=cortex-a9 ${CMAKE_C_FLAGS} " )
90118ENDIF (CORTEXA9_FOUND)
91119
92- INCLUDE (CheckIncludeFile)
93- INCLUDE (CheckCSourceCompiles)
94120CHECK_INCLUDE_FILE(cpuid.h HAVE_CPUID_H)
95121# Check for a cpuid intrinsic
96122IF (HAVE_CPUID_H)
0 commit comments