@@ -17,14 +17,14 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
17
17
# Define function to extract filelists from defs.bzl file
18
18
function (get_filelist name outputvar )
19
19
execute_process (
20
- COMMAND "${PYTHON_EXECUTABLE } " -c
20
+ COMMAND "${Python_EXECUTABLE } " -c
21
21
"exec(open('defs.bzl').read());print(';'.join(${name} ))"
22
22
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} "
23
23
OUTPUT_VARIABLE _tempvar
24
24
RESULT_VARIABLE _resvar
25
25
ERROR_VARIABLE _errvar )
26
- if (NOT "${_resvar} " EQUAL "0" )
27
- message (WARNING "Failed to execute Python (${PYTHON_EXECUTABLE } )\n "
26
+ if (NOT "${_resvar} " EQUAL "0" )
27
+ message (WARNING "Failed to execute Python (${Python_EXECUTABLE } )\n "
28
28
"Result: ${_resvar} \n "
29
29
"Error: ${_errvar} \n " )
30
30
endif ()
@@ -94,7 +94,7 @@ project(fbgemm VERSION 0.1 LANGUAGES CXX C)
94
94
include (GNUInstallDirs )
95
95
96
96
# Load Python
97
- find_package (PythonInterp )
97
+ find_package (Python )
98
98
99
99
set (FBGEMM_LIBRARY_TYPE "default"
100
100
CACHE STRING
@@ -136,7 +136,7 @@ endif()
136
136
include (${CMAKE_CURRENT_SOURCE_DIR} /cmake/modules/FindGnuH2fIeee.cmake )
137
137
138
138
# We should default to a Release build
139
- if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "" )
139
+ if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "" )
140
140
set (CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE )
141
141
endif ()
142
142
@@ -146,12 +146,8 @@ endif()
146
146
147
147
# Check if compiler supports OpenMP
148
148
find_package (OpenMP )
149
- if (OpenMP_FOUND )
149
+ if (OpenMP_FOUND )
150
150
message (STATUS "OpenMP found! OpenMP_C_INCLUDE_DIRS = ${OpenMP_C_INCLUDE_DIRS} " )
151
- include_directories (${OpenMP_C_INCLUDE_DIRS} )
152
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} " )
153
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} " )
154
- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS} " )
155
151
else ()
156
152
message (WARNING "OpenMP is not supported by the compiler" )
157
153
endif ()
@@ -267,7 +263,7 @@ if(NOT TARGET asmjit)
267
263
268
264
# Build asmjit
269
265
# For MSVC shared build, asmjit needs to be shared also.
270
- if (MSVC AND (FBGEMM_LIBRARY_TYPE STREQUAL "shared" ))
266
+ if (MSVC AND (FBGEMM_LIBRARY_TYPE STREQUAL "shared" ))
271
267
set (ASMJIT_STATIC OFF )
272
268
else ()
273
269
set (ASMJIT_STATIC ON )
@@ -333,23 +329,18 @@ target_include_directories(fbgemm_autovec BEFORE
333
329
PRIVATE "${ASMJIT_SRC_DIR} /src"
334
330
PRIVATE "${CPUINFO_SOURCE_DIR} /include" )
335
331
336
- if (FBGEMM_LIBRARY_TYPE STREQUAL "default" )
337
- add_library (fbgemm
338
- $< TARGET_OBJECTS:fbgemm_generic>
339
- $< TARGET_OBJECTS:fbgemm_avx2>
340
- $< TARGET_OBJECTS:fbgemm_avx512>
341
- $< TARGET_OBJECTS:fbgemm_autovec> )
342
- elseif (FBGEMM_LIBRARY_TYPE STREQUAL "shared" )
332
+ if ((FBGEMM_LIBRARY_TYPE STREQUAL "default" AND BUILD_SHARED_LIB ) OR FBGEMM_LIBRARY_TYPE STREQUAL "shared" )
343
333
add_library (fbgemm SHARED
344
334
$< TARGET_OBJECTS:fbgemm_generic>
345
335
$< TARGET_OBJECTS:fbgemm_avx2>
346
336
$< TARGET_OBJECTS:fbgemm_avx512>
347
337
$< TARGET_OBJECTS:fbgemm_autovec> )
338
+ set_property (TARGET fbgemm PROPERTY POSITION_INDEPENDENT_CODE ON )
348
339
set_property (TARGET fbgemm_generic PROPERTY POSITION_INDEPENDENT_CODE ON )
349
340
set_property (TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON )
350
341
set_property (TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON )
351
342
set_property (TARGET fbgemm_autovec PROPERTY POSITION_INDEPENDENT_CODE ON )
352
- elseif (FBGEMM_LIBRARY_TYPE STREQUAL "static" )
343
+ elseif (( FBGEMM_LIBRARY_TYPE STREQUAL "default" AND NOT BUILD_SHARED_LIB ) OR FBGEMM_LIBRARY_TYPE STREQUAL "static" )
353
344
add_library (fbgemm STATIC
354
345
$< TARGET_OBJECTS:fbgemm_generic>
355
346
$< TARGET_OBJECTS:fbgemm_avx2>
@@ -375,15 +366,13 @@ target_include_directories(fbgemm BEFORE
375
366
PUBLIC $< BUILD_INTERFACE:${FBGEMM_SOURCE_DIR} >
376
367
PUBLIC $< BUILD_INTERFACE:${FBGEMM_SOURCE_DIR} /include> )
377
368
378
- target_link_libraries (fbgemm
369
+ target_link_libraries (fbgemm PUBLIC
379
370
$< BUILD_INTERFACE:asmjit>
380
371
$< BUILD_INTERFACE:cpuinfo> )
381
- add_dependencies (fbgemm
382
- asmjit
383
- cpuinfo )
384
372
385
373
if (OpenMP_FOUND )
386
- target_link_libraries (fbgemm OpenMP::OpenMP_CXX )
374
+ target_link_libraries (fbgemm PUBLIC OpenMP::OpenMP_CXX )
375
+ target_link_libraries (fbgemm_generic PUBLIC OpenMP::OpenMP_CXX )
387
376
endif ()
388
377
389
378
install (
0 commit comments