Skip to content

Commit 51d03f4

Browse files
committed
add flagcx as submodule and build it during cmake
1 parent 698de0a commit 51d03f4

File tree

6 files changed

+60
-25
lines changed

6 files changed

+60
-25
lines changed

.gitmodules

+4
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,7 @@
129129
path = third_party/openvino
130130
url = https://github.com/openvinotoolkit/openvino.git
131131
ignore = dirty
132+
[submodule "third_party/flagcx"]
133+
path = third_party/flagcx
134+
url = https://github.com/FlagOpen/FlagCX.git
135+
ignore = dirty

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ endif()
541541

542542
if(WITH_FLAGCX)
543543
add_definitions("-DPADDLE_WITH_FLAGCX")
544-
include(flagcx)
544+
# include(flagcx)
545545
endif()
546546

547547
if(WITH_HETERPS AND WITH_PSLIB)

cmake/external/flagcx.cmake

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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}")

cmake/flagcx.cmake

-24
This file was deleted.

cmake/third_party.cmake

+4
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,10 @@ if(WITH_TESTING OR WITH_DISTRIBUTE)
469469
include(external/gtest) # download, build, install gtest
470470
list(APPEND third_party_deps extern_gtest)
471471
endif()
472+
if (WITH_FLAGCX)
473+
include(external/flagcx)
474+
list(APPEND third_party_deps flagcx)
475+
endif()
472476

473477
if(WITH_ONNXRUNTIME)
474478
include(external/onnxruntime

third_party/flagcx

Submodule flagcx added at 7e6c4cc

0 commit comments

Comments
 (0)