1
+ set (CMAKE_FIND_DEBUG_MODE ON )
2
+ # flagcx.cmake
3
+ if (NOT WITH_FLAGCX)
4
+ return ()
5
+ endif ()
6
+
7
+ set (FLAGCX_SOURCE_DIR "${PADDLE_SOURCE_DIR} /third_party/flagcx" )
8
+ set (FLAGCX_BINARY_DIR "${PADDLE_SOURCE_DIR} /build/third_party/flagcx" )
9
+ # set(FLAGCX_INCLUDE_DIR "${THIRD_PARTY_PATH}/flagcx/flagcx/include")
10
+ set (FLAGCX_LIB_DIR "${PADDLE_SOURCE_DIR} /build/third_party/flagcx/build/lib" )
11
+
12
+ message (STATUS "Copying third-party source to build directory" )
13
+ execute_process (
14
+ COMMAND ${CMAKE_COMMAND} -E remove_directory ${FLAGCX_BINARY_DIR}
15
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${FLAGCX_SOURCE_DIR} ${FLAGCX_BINARY_DIR}
16
+ RESULT_VARIABLE COPY_RESULT
17
+ )
18
+
19
+ if (NOT COPY_RESULT EQUAL 0)
20
+ message (FATAL_ERROR "Failed to copy third-party source to build directory" )
21
+ endif ()
22
+
23
+ # Create a custom target to build the third-party library
24
+ message (STATUS "Building third-party library with its Makefile" )
25
+ execute_process (
26
+ COMMAND make
27
+ WORKING_DIRECTORY ${FLAGCX_BINARY_DIR}
28
+ RESULT_VARIABLE BUILD_RESULT
29
+ )
30
+
31
+ if (NOT BUILD_RESULT EQUAL 0)
32
+ message (FATAL_ERROR "Failed to build third-party library" )
33
+ endif ()
34
+
35
+ # set(FLAGCX_ROOT
36
+ # $ENV{FLAGCX_ROOT}
37
+ # CACHE PATH "FLAGCX_ROOT")
38
+ # message(STATUS "FLAGCX_ROOT is ${FLAGCX_ROOT}")
39
+ generate_dummy_static_lib(LIB_NAME "flagcx" GENERATOR "flagcx.cmake" )
40
+ find_path (
41
+ FLAGCX_INCLUDE_DIR flagcx.h
42
+ PATHS ${FLAGCX_SOURCE_DIR} /flagcx/include
43
+ NO_DEFAULT_PATH)
44
+ message (STATUS "FLAGCX_INCLUDE_DIR is ${FLAGCX_INCLUDE_DIR} " )
45
+ include_directories (SYSTEM ${FLAGCX_INCLUDE_DIR} )
46
+ set (FLAGCX_LIB
47
+ "${FLAGCX_LIB_DIR} /libflagcx.so"
48
+ CACHE FILEPATH "flagcx library." FORCE)
49
+ target_link_libraries (flagcx ${FLAGCX_LIB} )
50
+ message (STATUS "FLAGCX_LIB is ${FLAGCX_LIB} " )
0 commit comments