forked from huawei/mindspore2022
Add TARGET_ALIAS to mindspore_add_pkg
This commit is contained in:
parent
db3397602a
commit
2ae66df602
|
|
@ -1,30 +1,26 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/abseil-cpp/repository/archive/20200923.3.tar.gz")
|
||||
set(MD5 "daba6e99c7a84e2242a0107bbd873669")
|
||||
set(REQ_URL "https://gitee.com/mirrors/abseil-cpp/repository/archive/20200923.3.tar.gz")
|
||||
set(MD5 "daba6e99c7a84e2242a0107bbd873669")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/abseil/abseil-cpp/archive/20200923.3.tar.gz")
|
||||
set(MD5 "daba6e99c7a84e2242a0107bbd873669")
|
||||
set(REQ_URL "https://github.com/abseil/abseil-cpp/archive/20200923.3.tar.gz")
|
||||
set(MD5 "daba6e99c7a84e2242a0107bbd873669")
|
||||
endif()
|
||||
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(absl_CXXFLAGS "${absl_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
set(absl_CXXFLAGS "${absl_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(absl
|
||||
VER 20200923.3
|
||||
LIBS absl_strings absl_throw_delegate absl_raw_logging_internal absl_int128 absl_bad_optional_access
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE
|
||||
-DCMAKE_CXX_STANDARD=11
|
||||
)
|
||||
mindspore_add_pkg(
|
||||
absl
|
||||
VER 20200923.3
|
||||
LIBS absl_strings absl_throw_delegate absl_raw_logging_internal absl_int128 absl_bad_optional_access
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCMAKE_CXX_STANDARD=11
|
||||
TARGET_ALIAS mindspore::absl_strings absl::absl_strings
|
||||
TARGET_ALIAS mindspore::absl_throw_delegate absl::absl_throw_delegate
|
||||
TARGET_ALIAS mindspore::absl_raw_logging_internal absl::absl_raw_logging_internal
|
||||
TARGET_ALIAS mindspore::absl_int128 absl::absl_int128
|
||||
TARGET_ALIAS mindspore::absl_bad_optional_access absl::absl_bad_optional_access)
|
||||
|
||||
include_directories(${absl_INC})
|
||||
|
||||
add_library(mindspore::absl_strings ALIAS absl::absl_strings)
|
||||
add_library(mindspore::absl_throw_delegate ALIAS absl::absl_throw_delegate)
|
||||
add_library(mindspore::absl_raw_logging_internal ALIAS absl::absl_raw_logging_internal)
|
||||
add_library(mindspore::absl_int128 ALIAS absl::absl_int128)
|
||||
add_library(mindspore::absl_bad_optional_access ALIAS absl::absl_bad_optional_access)
|
||||
|
|
|
|||
|
|
@ -1,22 +1,20 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/c-ares/repository/archive/cares-1_15_0.tar.gz")
|
||||
set(MD5 "459876e53724a2c87ed2876312b96aed")
|
||||
set(REQ_URL "https://gitee.com/mirrors/c-ares/repository/archive/cares-1_15_0.tar.gz")
|
||||
set(MD5 "459876e53724a2c87ed2876312b96aed")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/c-ares/c-ares/releases/download/cares-1_15_0/c-ares-1.15.0.tar.gz")
|
||||
set(MD5 "d2391da274653f7643270623e822dff7")
|
||||
set(REQ_URL "https://github.com/c-ares/c-ares/releases/download/cares-1_15_0/c-ares-1.15.0.tar.gz")
|
||||
set(MD5 "d2391da274653f7643270623e822dff7")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(c-ares
|
||||
VER 1.15.0
|
||||
LIBS cares
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCARES_SHARED:BOOL=OFF
|
||||
-DCARES_STATIC:BOOL=ON
|
||||
-DCARES_STATIC_PIC:BOOL=ON
|
||||
-DHAVE_LIBNSL:BOOL=OFF
|
||||
PATCHES ${TOP_DIR}/third_party/patch/c-ares/CVE-2021-3672.patch)
|
||||
mindspore_add_pkg(
|
||||
c-ares
|
||||
VER 1.15.0
|
||||
LIBS cares
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DCARES_SHARED:BOOL=OFF -DCARES_STATIC:BOOL=ON
|
||||
-DCARES_STATIC_PIC:BOOL=ON -DHAVE_LIBNSL:BOOL=OFF
|
||||
PATCHES ${TOP_DIR}/third_party/patch/c-ares/CVE-2021-3672.patch
|
||||
TARGET_ALIAS mindspore::cares c-ares::cares)
|
||||
|
||||
include_directories(${c-ares_INC})
|
||||
add_library(mindspore::cares ALIAS c-ares::cares)
|
||||
|
|
|
|||
|
|
@ -2,20 +2,20 @@ set(cppjieba_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
|||
set(cppjieba_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/cppjieba/repository/archive/v5.0.3.tar.gz")
|
||||
set(MD5 "06fcc22b4db6c332dc1b0bd353bdf6f2")
|
||||
set(REQ_URL "https://gitee.com/mirrors/cppjieba/repository/archive/v5.0.3.tar.gz")
|
||||
set(MD5 "06fcc22b4db6c332dc1b0bd353bdf6f2")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/yanyiwu/cppjieba/archive/v5.0.3.tar.gz")
|
||||
set(MD5 "b8b3f7a73032c9ce9daafa4f67196c8c")
|
||||
set(REQ_URL "https://github.com/yanyiwu/cppjieba/archive/v5.0.3.tar.gz")
|
||||
set(MD5 "b8b3f7a73032c9ce9daafa4f67196c8c")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(cppjieba
|
||||
VER 5.0.3
|
||||
HEAD_ONLY ./
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${TOP_DIR}/third_party/patch/cppjieba/cppjieba.patch001)
|
||||
mindspore_add_pkg(
|
||||
cppjieba
|
||||
VER 5.0.3
|
||||
HEAD_ONLY ./
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${TOP_DIR}/third_party/patch/cppjieba/cppjieba.patch001
|
||||
TARGET_ALIAS mindspore::cppjieba cppjieba)
|
||||
include_directories(${cppjieba_INC}include)
|
||||
include_directories(${cppjieba_INC}deps)
|
||||
add_library(mindspore::cppjieba ALIAS cppjieba)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
set(Eigen3_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(Eigen3_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
|
||||
|
||||
set(REQ_URL "https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz")
|
||||
set(MD5 "609286804b0f79be622ccf7f9ff2b660")
|
||||
|
||||
|
||||
mindspore_add_pkg(Eigen3
|
||||
VER 3.3.9
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DBUILD_TESTING=OFF)
|
||||
find_package(Eigen3 3.3.9 REQUIRED ${MS_FIND_NO_DEFAULT_PATH})
|
||||
mindspore_add_pkg(
|
||||
Eigen3
|
||||
VER 3.3.9
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DBUILD_TESTING=OFF
|
||||
TARGET_ALIAS mindspore::eigen Eigen3::Eigen)
|
||||
if(NOT TARGET Eigen3::Eigen)
|
||||
message(FATAL_ERROR "Failed to find Eigen3::Eigen")
|
||||
endif()
|
||||
include_directories(${Eigen3_INC})
|
||||
include_directories(${EIGEN3_INCLUDE_DIR})
|
||||
set_property(TARGET Eigen3::Eigen PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
add_library(mindspore::eigen ALIAS Eigen3::Eigen)
|
||||
|
|
|
|||
|
|
@ -1,134 +1,120 @@
|
|||
if(MSVC)
|
||||
set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
else()
|
||||
set(flatbuffers_CXXFLAGS "-fPIC -fPIE -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-strong")
|
||||
set(flatbuffers_CFLAGS "-fPIC -fPIE -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-strong")
|
||||
set(flatbuffers_CXXFLAGS "-fPIC -fPIE -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-strong")
|
||||
set(flatbuffers_CFLAGS "-fPIC -fPIE -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-strong")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(flatbuffers_USE_STATIC_LIBS ON)
|
||||
set(flatbuffers_USE_STATIC_LIBS ON)
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/flatbuffers/repository/archive/v2.0.0.tar.gz")
|
||||
set(MD5 "5c23d17c0486b81d4c11907e8f7bf36b")
|
||||
set(REQ_URL "https://gitee.com/mirrors/flatbuffers/repository/archive/v2.0.0.tar.gz")
|
||||
set(MD5 "5c23d17c0486b81d4c11907e8f7bf36b")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/google/flatbuffers/archive/v2.0.0.tar.gz")
|
||||
set(MD5 "a27992324c3cbf86dd888268a23d17bd")
|
||||
set(REQ_URL "https://github.com/google/flatbuffers/archive/v2.0.0.tar.gz")
|
||||
set(MD5 "a27992324c3cbf86dd888268a23d17bd")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(flatbuffers_CXXFLAGS "${flatbuffers_CXXFLAGS} -Wno-deprecated")
|
||||
set(flatbuffers_CXXFLAGS "${flatbuffers_CXXFLAGS} -Wno-deprecated")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
mindspore_add_pkg(flatbuffers
|
||||
VER 2.0.0
|
||||
LIBS flatbuffers
|
||||
EXE flatc
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_INSTALL_LIBDIR=lib)
|
||||
set(CMAKE_OPTION -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_INSTALL_LIBDIR=lib)
|
||||
else()
|
||||
mindspore_add_pkg(flatbuffers
|
||||
VER 2.0.0
|
||||
LIBS flatbuffers
|
||||
EXE flatc
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_C_COMPILER=${FLATC_GCC_COMPILER} -DCMAKE_CXX_COMPILER=${FLATC_GXX_COMPILER}
|
||||
-DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release)
|
||||
set(CMAKE_OPTION -DCMAKE_C_COMPILER=${FLATC_GCC_COMPILER} -DCMAKE_CXX_COMPILER=${FLATC_GXX_COMPILER}
|
||||
-DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release)
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(
|
||||
flatbuffers
|
||||
VER 2.0.0
|
||||
LIBS flatbuffers
|
||||
EXE flatc
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION ${CMAKE_OPTION}
|
||||
TARGET_ALIAS mindspore::flatbuffers flatbuffers::flatbuffers
|
||||
TARGET_ALIAS mindspore::flatc flatbuffers::flatc)
|
||||
|
||||
include_directories(${flatbuffers_INC})
|
||||
add_library(mindspore::flatbuffers ALIAS flatbuffers::flatbuffers)
|
||||
add_executable(mindspore::flatc ALIAS flatbuffers::flatc)
|
||||
function(ms_build_flatbuffers source_schema_files
|
||||
source_schema_dirs
|
||||
custom_target_name
|
||||
generated_output_dir)
|
||||
|
||||
set(total_schema_dirs "")
|
||||
set(total_generated_files "")
|
||||
set(FLATC mindspore::flatc)
|
||||
foreach(schema_dir ${source_schema_dirs})
|
||||
set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs})
|
||||
endforeach()
|
||||
|
||||
foreach(schema IN LISTS ${source_schema_files})
|
||||
get_filename_component(filename ${schema} NAME_WE)
|
||||
if(NOT ${generated_output_dir} STREQUAL "")
|
||||
set(generated_file ${generated_output_dir}/${filename}_generated.h)
|
||||
add_custom_command(
|
||||
OUTPUT ${generated_file}
|
||||
COMMAND ${FLATC} --gen-mutable
|
||||
--reflect-names --gen-object-api -o ${generated_output_dir}
|
||||
${total_schema_dirs}
|
||||
-c -b --reflect-types ${schema}
|
||||
DEPENDS ${FLATC} ${schema}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM)
|
||||
list(APPEND total_generated_files ${generated_file})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${custom_target_name} ALL
|
||||
DEPENDS ${total_generated_files})
|
||||
function(ms_build_flatbuffers source_schema_files source_schema_dirs custom_target_name generated_output_dir)
|
||||
set(total_schema_dirs "")
|
||||
set(total_generated_files "")
|
||||
set(FLATC mindspore::flatc)
|
||||
foreach(schema_dir ${source_schema_dirs})
|
||||
set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs})
|
||||
endforeach()
|
||||
|
||||
foreach(schema IN LISTS ${source_schema_files})
|
||||
get_filename_component(filename ${schema} NAME_WE)
|
||||
if(NOT ${generated_output_dir} STREQUAL "")
|
||||
include_directories(${generated_output_dir})
|
||||
set_property(TARGET ${custom_target_name}
|
||||
PROPERTY GENERATED_OUTPUT_DIR
|
||||
${generated_output_dir})
|
||||
set(generated_file ${generated_output_dir}/${filename}_generated.h)
|
||||
add_custom_command(
|
||||
OUTPUT ${generated_file}
|
||||
COMMAND ${FLATC} --gen-mutable --reflect-names --gen-object-api -o ${generated_output_dir} ${total_schema_dirs}
|
||||
-c -b --reflect-types ${schema}
|
||||
DEPENDS ${FLATC} ${schema}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Running C++ flatbuffers compiler on ${schema}"
|
||||
VERBATIM)
|
||||
list(APPEND total_generated_files ${generated_file})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${custom_target_name} ALL DEPENDS ${total_generated_files})
|
||||
|
||||
if(NOT ${generated_output_dir} STREQUAL "")
|
||||
include_directories(${generated_output_dir})
|
||||
set_property(TARGET ${custom_target_name} PROPERTY GENERATED_OUTPUT_DIR ${generated_output_dir})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(ms_build_flatbuffers_lite
|
||||
source_schema_files source_schema_dirs custom_target_name generated_output_dir if_inner)
|
||||
function(ms_build_flatbuffers_lite source_schema_files source_schema_dirs custom_target_name generated_output_dir
|
||||
if_inner)
|
||||
|
||||
set(total_schema_dirs "")
|
||||
set(total_generated_files "")
|
||||
set(FLATC mindspore::flatc)
|
||||
foreach(schema_dir ${source_schema_dirs})
|
||||
set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs})
|
||||
endforeach()
|
||||
|
||||
foreach(schema IN LISTS ${source_schema_files})
|
||||
get_filename_component(filename ${schema} NAME_WE)
|
||||
if(NOT ${generated_output_dir} STREQUAL "")
|
||||
set(generated_file ${generated_output_dir}/${filename}_generated.h)
|
||||
if(if_inner MATCHES "inner")
|
||||
add_custom_command(
|
||||
OUTPUT ${generated_file}
|
||||
COMMAND ${FLATC} --gen-mutable
|
||||
--reflect-names --gen-object-api -o ${generated_output_dir}
|
||||
${total_schema_dirs}
|
||||
-c -b --reflect-types ${schema}
|
||||
DEPENDS ${FLATC} ${schema}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT ${generated_file}
|
||||
COMMAND ${FLATC} -o ${generated_output_dir}
|
||||
${total_schema_dirs}
|
||||
-c -b ${schema}
|
||||
DEPENDS ${FLATC} ${schema}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM)
|
||||
endif()
|
||||
list(APPEND total_generated_files ${generated_file})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${custom_target_name} ALL
|
||||
DEPENDS ${total_generated_files})
|
||||
set(total_schema_dirs "")
|
||||
set(total_generated_files "")
|
||||
set(FLATC mindspore::flatc)
|
||||
foreach(schema_dir ${source_schema_dirs})
|
||||
set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs})
|
||||
endforeach()
|
||||
|
||||
foreach(schema IN LISTS ${source_schema_files})
|
||||
get_filename_component(filename ${schema} NAME_WE)
|
||||
if(NOT ${generated_output_dir} STREQUAL "")
|
||||
include_directories(${generated_output_dir})
|
||||
set_property(TARGET ${custom_target_name}
|
||||
PROPERTY GENERATED_OUTPUT_DIR
|
||||
${generated_output_dir})
|
||||
set(generated_file ${generated_output_dir}/${filename}_generated.h)
|
||||
if(if_inner MATCHES "inner")
|
||||
add_custom_command(
|
||||
OUTPUT ${generated_file}
|
||||
COMMAND ${FLATC} --gen-mutable --reflect-names --gen-object-api -o ${generated_output_dir}
|
||||
${total_schema_dirs} -c -b --reflect-types ${schema}
|
||||
DEPENDS ${FLATC} ${schema}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Running C++ flatbuffers compiler on ${schema}"
|
||||
VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT ${generated_file}
|
||||
COMMAND ${FLATC} -o ${generated_output_dir} ${total_schema_dirs} -c -b ${schema}
|
||||
DEPENDS ${FLATC} ${schema}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Running C++ flatbuffers compiler on ${schema}"
|
||||
VERBATIM)
|
||||
endif()
|
||||
list(APPEND total_generated_files ${generated_file})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${custom_target_name} ALL DEPENDS ${total_generated_files})
|
||||
|
||||
if(NOT ${generated_output_dir} STREQUAL "")
|
||||
include_directories(${generated_output_dir})
|
||||
set_property(TARGET ${custom_target_name} PROPERTY GENERATED_OUTPUT_DIR ${generated_output_dir})
|
||||
endif()
|
||||
endfunction()
|
||||
|
|
|
|||
|
|
@ -1,52 +1,51 @@
|
|||
if(BUILD_LITE)
|
||||
if(MSVC)
|
||||
set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
else()
|
||||
set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_private")
|
||||
set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_C_FLAGS}")
|
||||
set(glog_LDFLAGS "${SECURE_SHARED_LINKER_FLAGS}")
|
||||
endif()
|
||||
set(glog_patch "")
|
||||
set(glog_lib glog)
|
||||
else()
|
||||
if(MSVC)
|
||||
set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
else()
|
||||
set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_private")
|
||||
set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(glog_patch ${CMAKE_SOURCE_DIR}/third_party/patch/glog/glog.patch001)
|
||||
set(glog_lib mindspore_glog)
|
||||
set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_C_FLAGS}")
|
||||
set(glog_LDFLAGS "${SECURE_SHARED_LINKER_FLAGS}")
|
||||
endif()
|
||||
set(glog_patch "")
|
||||
set(glog_lib glog)
|
||||
else()
|
||||
set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_private")
|
||||
set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(glog_patch ${CMAKE_SOURCE_DIR}/third_party/patch/glog/glog.patch001)
|
||||
set(glog_lib mindspore_glog)
|
||||
endif()
|
||||
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(glog_CXXFLAGS "${glog_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
set(glog_CXXFLAGS "${glog_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/glog/repository/archive/v0.4.0.tar.gz")
|
||||
set(MD5 "9a7598a00c569a11ff1a419076de4ed7")
|
||||
set(REQ_URL "https://gitee.com/mirrors/glog/repository/archive/v0.4.0.tar.gz")
|
||||
set(MD5 "9a7598a00c569a11ff1a419076de4ed7")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/google/glog/archive/v0.4.0.tar.gz")
|
||||
set(MD5 "0daea8785e6df922d7887755c3d100d0")
|
||||
set(REQ_URL "https://github.com/google/glog/archive/v0.4.0.tar.gz")
|
||||
set(MD5 "0daea8785e6df922d7887755c3d100d0")
|
||||
endif()
|
||||
|
||||
set(glog_option -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DWITH_GFLAGS=OFF
|
||||
-DCMAKE_BUILD_TYPE=Release)
|
||||
-DCMAKE_BUILD_TYPE=Release)
|
||||
|
||||
if(WIN32 AND NOT MSVC)
|
||||
execute_process(COMMAND "${CMAKE_C_COMPILER}" -dumpmachine
|
||||
OUTPUT_VARIABLE i686_or_x86_64
|
||||
)
|
||||
if(i686_or_x86_64 MATCHES "^i686-")
|
||||
set(glog_option ${glog_option} -DHAVE_DBGHELP=ON)
|
||||
endif()
|
||||
execute_process(COMMAND "${CMAKE_C_COMPILER}" -dumpmachine OUTPUT_VARIABLE i686_or_x86_64)
|
||||
if(i686_or_x86_64 MATCHES "^i686-")
|
||||
set(glog_option ${glog_option} -DHAVE_DBGHELP=ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(glog
|
||||
VER 0.4.0
|
||||
LIBS ${glog_lib}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${glog_patch}
|
||||
CMAKE_OPTION ${glog_option})
|
||||
mindspore_add_pkg(
|
||||
glog
|
||||
VER 0.4.0
|
||||
LIBS ${glog_lib}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${glog_patch}
|
||||
CMAKE_OPTION ${glog_option}
|
||||
TARGET_ALIAS mindspore::glog glog::${glog_lib})
|
||||
include_directories(${glog_INC})
|
||||
add_library(mindspore::glog ALIAS glog::${glog_lib})
|
||||
|
|
|
|||
|
|
@ -1,87 +1,87 @@
|
|||
set(grpc_USE_STATIC_LIBS OFF)
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(grpc_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 -O2 \
|
||||
set(grpc_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 -O2 \
|
||||
-Dgrpc=mindspore_grpc -Dgrpc_impl=mindspore_grpc_impl -Dgrpc_core=mindspore_grpc_core")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(grpc_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(grpc_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
else()
|
||||
set(grpc_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2 \
|
||||
set(grpc_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2 \
|
||||
-Dgrpc=mindspore_grpc -Dgrpc_impl=mindspore_grpc_impl -Dgrpc_core=mindspore_grpc_core")
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(grpc_CXXFLAGS "${grpc_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(grpc_CXXFLAGS "${grpc_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(grpc_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
set(grpc_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${protobuf_ROOT}/lib64)
|
||||
set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${protobuf_ROOT}/lib64/cmake/protobuf")
|
||||
set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${protobuf_ROOT}/lib64/cmake/protobuf")
|
||||
else()
|
||||
set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${protobuf_ROOT}/lib/cmake/protobuf")
|
||||
set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${protobuf_ROOT}/lib/cmake/protobuf")
|
||||
endif()
|
||||
message("grpc using Protobuf_DIR : " ${_FINDPACKAGE_PROTOBUF_CONFIG_DIR})
|
||||
|
||||
if(EXISTS ${absl_ROOT}/lib64)
|
||||
set(_FINDPACKAGE_ABSL_CONFIG_DIR "${absl_ROOT}/lib64/cmake/absl")
|
||||
set(_FINDPACKAGE_ABSL_CONFIG_DIR "${absl_ROOT}/lib64/cmake/absl")
|
||||
else()
|
||||
set(_FINDPACKAGE_ABSL_CONFIG_DIR "${absl_ROOT}/lib/cmake/absl")
|
||||
set(_FINDPACKAGE_ABSL_CONFIG_DIR "${absl_ROOT}/lib/cmake/absl")
|
||||
endif()
|
||||
message("grpc using absl_DIR : " ${_FINDPACKAGE_ABSL_CONFIG_DIR})
|
||||
|
||||
if(EXISTS ${re2_ROOT}/lib64)
|
||||
set(_FINDPACKAGE_RE2_CONFIG_DIR "${re2_ROOT}/lib64/cmake/re2")
|
||||
set(_FINDPACKAGE_RE2_CONFIG_DIR "${re2_ROOT}/lib64/cmake/re2")
|
||||
else()
|
||||
set(_FINDPACKAGE_RE2_CONFIG_DIR "${re2_ROOT}/lib/cmake/re2")
|
||||
set(_FINDPACKAGE_RE2_CONFIG_DIR "${re2_ROOT}/lib/cmake/re2")
|
||||
endif()
|
||||
message("grpc using re2_DIR : " ${_FINDPACKAGE_RE2_CONFIG_DIR})
|
||||
|
||||
if(EXISTS ${openssl_ROOT})
|
||||
set(_CMAKE_ARGS_OPENSSL_ROOT_DIR "-DOPENSSL_ROOT_DIR:PATH=${openssl_ROOT}")
|
||||
set(_CMAKE_ARGS_OPENSSL_ROOT_DIR "-DOPENSSL_ROOT_DIR:PATH=${openssl_ROOT}")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/grpc/repository/archive/v1.36.1.tar.gz")
|
||||
set(MD5 "71252ebcd8e9e32a818a907dfd4b63cc")
|
||||
set(REQ_URL "https://gitee.com/mirrors/grpc/repository/archive/v1.36.1.tar.gz")
|
||||
set(MD5 "71252ebcd8e9e32a818a907dfd4b63cc")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/grpc/grpc/archive/v1.36.1.tar.gz")
|
||||
set(MD5 "90c93203e95e89af5f46738588217057")
|
||||
set(REQ_URL "https://github.com/grpc/grpc/archive/v1.36.1.tar.gz")
|
||||
set(MD5 "90c93203e95e89af5f46738588217057")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(grpc
|
||||
VER 1.36.1
|
||||
LIBS mindspore_grpc++ mindspore_grpc mindspore_gpr mindspore_upb mindspore_address_sorting
|
||||
EXE grpc_cpp_plugin
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${TOP_DIR}/third_party/patch/grpc/grpc.patch001
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DgRPC_INSTALL:BOOL=ON
|
||||
-DgRPC_BUILD_TESTS:BOOL=OFF
|
||||
-DgRPC_PROTOBUF_PROVIDER:STRING=package
|
||||
-DgRPC_PROTOBUF_PACKAGE_TYPE:STRING=CONFIG
|
||||
-DProtobuf_DIR:PATH=${_FINDPACKAGE_PROTOBUF_CONFIG_DIR}
|
||||
-DgRPC_ZLIB_PROVIDER:STRING=package
|
||||
-DZLIB_ROOT:PATH=${zlib_ROOT}
|
||||
-DgRPC_ABSL_PROVIDER:STRING=package
|
||||
-Dabsl_DIR:PATH=${_FINDPACKAGE_ABSL_CONFIG_DIR}
|
||||
-DgRPC_CARES_PROVIDER:STRING=package
|
||||
-Dc-ares_DIR:PATH=${c-ares_ROOT}/lib/cmake/c-ares
|
||||
-DgRPC_SSL_PROVIDER:STRING=package
|
||||
${_CMAKE_ARGS_OPENSSL_ROOT_DIR}
|
||||
-DgRPC_RE2_PROVIDER:STRING=package
|
||||
-Dre2_DIR:PATH=${_FINDPACKAGE_RE2_CONFIG_DIR}
|
||||
)
|
||||
mindspore_add_pkg(
|
||||
grpc
|
||||
VER 1.36.1
|
||||
LIBS mindspore_grpc++ mindspore_grpc mindspore_gpr mindspore_upb mindspore_address_sorting
|
||||
EXE grpc_cpp_plugin
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${TOP_DIR}/third_party/patch/grpc/grpc.patch001
|
||||
CMAKE_OPTION
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DgRPC_INSTALL:BOOL=ON
|
||||
-DgRPC_BUILD_TESTS:BOOL=OFF
|
||||
-DgRPC_PROTOBUF_PROVIDER:STRING=package
|
||||
-DgRPC_PROTOBUF_PACKAGE_TYPE:STRING=CONFIG
|
||||
-DProtobuf_DIR:PATH=${_FINDPACKAGE_PROTOBUF_CONFIG_DIR}
|
||||
-DgRPC_ZLIB_PROVIDER:STRING=package
|
||||
-DZLIB_ROOT:PATH=${zlib_ROOT}
|
||||
-DgRPC_ABSL_PROVIDER:STRING=package
|
||||
-Dabsl_DIR:PATH=${_FINDPACKAGE_ABSL_CONFIG_DIR}
|
||||
-DgRPC_CARES_PROVIDER:STRING=package
|
||||
-Dc-ares_DIR:PATH=${c-ares_ROOT}/lib/cmake/c-ares
|
||||
-DgRPC_SSL_PROVIDER:STRING=package
|
||||
${_CMAKE_ARGS_OPENSSL_ROOT_DIR}
|
||||
-DgRPC_RE2_PROVIDER:STRING=package
|
||||
-Dre2_DIR:PATH=${_FINDPACKAGE_RE2_CONFIG_DIR}
|
||||
TARGET_ALIAS mindspore::grpc++ grpc::mindspore_grpc++)
|
||||
|
||||
include_directories(${grpc_INC})
|
||||
|
||||
add_library(mindspore::grpc++ ALIAS grpc::mindspore_grpc++)
|
||||
|
||||
# link other grpc libs
|
||||
target_link_libraries(grpc::mindspore_grpc++ INTERFACE grpc::mindspore_grpc grpc::mindspore_gpr grpc::mindspore_upb
|
||||
grpc::mindspore_address_sorting)
|
||||
grpc::mindspore_address_sorting)
|
||||
|
||||
# modify mindspore macro define
|
||||
add_compile_definitions(grpc=mindspore_grpc)
|
||||
|
|
@ -89,41 +89,43 @@ add_compile_definitions(grpc_impl=mindspore_grpc_impl)
|
|||
add_compile_definitions(grpc_core=mindspore_grpc_core)
|
||||
|
||||
function(ms_grpc_generate c_var h_var)
|
||||
if(NOT ARGN)
|
||||
message(SEND_ERROR "Error: ms_grpc_generate() called without any proto files")
|
||||
return()
|
||||
endif()
|
||||
if(NOT ARGN)
|
||||
message(SEND_ERROR "Error: ms_grpc_generate() called without any proto files")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(${c_var})
|
||||
set(${h_var})
|
||||
set(${c_var})
|
||||
set(${h_var})
|
||||
|
||||
foreach(file ${ARGN})
|
||||
get_filename_component(abs_file ${file} ABSOLUTE)
|
||||
get_filename_component(file_name ${file} NAME_WE)
|
||||
get_filename_component(file_dir ${abs_file} PATH)
|
||||
file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir})
|
||||
foreach(file ${ARGN})
|
||||
get_filename_component(abs_file ${file} ABSOLUTE)
|
||||
get_filename_component(file_name ${file} NAME_WE)
|
||||
get_filename_component(file_dir ${abs_file} PATH)
|
||||
file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir})
|
||||
|
||||
list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc")
|
||||
list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h")
|
||||
list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.cc")
|
||||
list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.h")
|
||||
list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc")
|
||||
list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h")
|
||||
list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.cc")
|
||||
list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.h")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.cc"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.h"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto"
|
||||
COMMAND protobuf::protoc --version
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto
|
||||
--grpc_out=${CMAKE_BINARY_DIR}/proto
|
||||
--plugin=protoc-gen-grpc=$<TARGET_FILE:grpc::grpc_cpp_plugin> ${abs_file}
|
||||
DEPENDS protobuf::protoc grpc::grpc_cpp_plugin ${abs_file}
|
||||
COMMENT "Running C++ gRPC compiler on ${file}" VERBATIM)
|
||||
endforeach()
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.cc" "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.h"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto"
|
||||
COMMAND protobuf::protoc --version
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto --grpc_out=${CMAKE_BINARY_DIR}/proto
|
||||
--plugin=protoc-gen-grpc=$<TARGET_FILE:grpc::grpc_cpp_plugin> ${abs_file}
|
||||
DEPENDS protobuf::protoc grpc::grpc_cpp_plugin ${abs_file}
|
||||
COMMENT "Running C++ gRPC compiler on ${file}"
|
||||
VERBATIM)
|
||||
endforeach()
|
||||
|
||||
set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE)
|
||||
set(${c_var} ${${c_var}} PARENT_SCOPE)
|
||||
set(${h_var} ${${h_var}} PARENT_SCOPE)
|
||||
set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE)
|
||||
set(${c_var}
|
||||
${${c_var}}
|
||||
PARENT_SCOPE)
|
||||
set(${h_var}
|
||||
${${h_var}}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
|
|
|||
|
|
@ -1,67 +1,71 @@
|
|||
set(gtest_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(gtest_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
|
||||
set(CMAKE_OPTION
|
||||
-DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON
|
||||
-DCMAKE_MACOSX_RPATH=TRUE -Dgtest_disable_pthreads=ON)
|
||||
set(CMAKE_OPTION -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON
|
||||
-DCMAKE_MACOSX_RPATH=TRUE -Dgtest_disable_pthreads=ON)
|
||||
if(BUILD_LITE)
|
||||
if(PLATFORM_ARM64)
|
||||
set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=arm64-v8a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=${ANDROID_STL}
|
||||
${CMAKE_OPTION})
|
||||
endif()
|
||||
if(PLATFORM_ARM32)
|
||||
set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=armeabi-v7a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=${ANDROID_STL}
|
||||
${CMAKE_OPTION})
|
||||
endif()
|
||||
if(PLATFORM_ARM64)
|
||||
set(CMAKE_OPTION
|
||||
-DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=arm64-v8a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=${ANDROID_STL}
|
||||
${CMAKE_OPTION})
|
||||
endif()
|
||||
if(PLATFORM_ARM32)
|
||||
set(CMAKE_OPTION
|
||||
-DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=armeabi-v7a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=${ANDROID_STL}
|
||||
${CMAKE_OPTION})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(gtest_CXXFLAGS "${gtest_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
set(gtest_CXXFLAGS "${gtest_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.1.tar.gz")
|
||||
set(MD5 "2e6fbeb6a91310a16efe181886c59596")
|
||||
set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.1.tar.gz")
|
||||
set(MD5 "2e6fbeb6a91310a16efe181886c59596")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz")
|
||||
set(MD5 "2e6fbeb6a91310a16efe181886c59596")
|
||||
set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz")
|
||||
set(MD5 "2e6fbeb6a91310a16efe181886c59596")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(gtest
|
||||
VER 1.8.1
|
||||
LIBS gtest gmock
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION ${CMAKE_OPTION})
|
||||
mindspore_add_pkg(
|
||||
gtest
|
||||
VER 1.8.1
|
||||
LIBS gtest gmock
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION ${CMAKE_OPTION}
|
||||
TARGET_ALIAS mindspore::gtest gtest::gtest
|
||||
TARGET_ALIAS mindspore::gmock gtest::gmock)
|
||||
|
||||
include_directories(${gtest_INC})
|
||||
add_library(mindspore::gtest ALIAS gtest::gtest)
|
||||
add_library(mindspore::gmock ALIAS gtest::gmock)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgmock_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgmock${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgmock_main${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_DIRPATH}/bin/libgmock${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
else()
|
||||
file(COPY ${gtest_LIBPATH}/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_LIBPATH}/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_LIBPATH}/libgmock${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_LIBPATH}/libgmock_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
|
||||
${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
endif()
|
||||
file(COPY ${gtest_LIBPATH}/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_LIBPATH}/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_LIBPATH}/libgmock${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
file(COPY ${gtest_LIBPATH}/libgmock_main${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -3,56 +3,53 @@ set(LIB_ICU_DATA icudata)
|
|||
set(LIB_ICU_I18N icui18n)
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/icu/repository/archive/release-67-1.tar.gz")
|
||||
set(MD5 "0c2662a2b0bc80b0eb56495205247c8f")
|
||||
set(REQ_URL "https://gitee.com/mirrors/icu/repository/archive/release-67-1.tar.gz")
|
||||
set(MD5 "0c2662a2b0bc80b0eb56495205247c8f")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/unicode-org/icu/archive/release-67-1.tar.gz")
|
||||
set(MD5 "fd525fb47d8827b0b7da78b51dd2d93f")
|
||||
set(REQ_URL "https://github.com/unicode-org/icu/archive/release-67-1.tar.gz")
|
||||
set(MD5 "fd525fb47d8827b0b7da78b51dd2d93f")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
message("icu4c thirdparty do not support windows currently.")
|
||||
message("icu4c thirdparty do not support windows currently.")
|
||||
else()
|
||||
set(JSON_FILE "{ \n\
|
||||
set(JSON_FILE
|
||||
"{ \n\
|
||||
\"strategy\": \"additive\",\n\
|
||||
\"featureFilters\": {\n\
|
||||
\"normalization\": \"include\"\n\
|
||||
}\n\
|
||||
}\
|
||||
")
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/icu4c_filter.json ${JSON_FILE})
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
mindspore_add_pkg(icu4c
|
||||
VER 67.1
|
||||
LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/icu4c/icu4c.patch01
|
||||
CONFIGURE_COMMAND ./icu4c/source/runConfigureICU MacOSX --disable-tests
|
||||
--disable-samples --disable-icuio --disable-extras
|
||||
ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json
|
||||
)
|
||||
else()
|
||||
mindspore_add_pkg(icu4c
|
||||
VER 67.1
|
||||
LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${TOP_DIR}/third_party/patch/icu4c/icu4c.patch01
|
||||
CONFIGURE_COMMAND ./icu4c/source/runConfigureICU Linux --enable-rpath --disable-tests --disable-samples
|
||||
--disable-icuio --disable-extras
|
||||
ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json
|
||||
)
|
||||
endif()
|
||||
include_directories(${icu4c_INC})
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/change_rpath.cmake)
|
||||
changerpath($<TARGET_FILE:icu4c::${LIB_ICU_COMMON}> ${LIB_ICU_COMMON} "libicuuc;libicudata")
|
||||
changerpath($<TARGET_FILE:icu4c::${LIB_ICU_DATA}> ${LIB_ICU_DATA} "libicudata")
|
||||
changerpath($<TARGET_FILE:icu4c::${LIB_ICU_I18N}> ${LIB_ICU_I18N} "libicuuc;libicudata;libicui18n")
|
||||
endif()
|
||||
add_library(mindspore::icuuc ALIAS icu4c::${LIB_ICU_COMMON})
|
||||
add_library(mindspore::icudata ALIAS icu4c::${LIB_ICU_DATA})
|
||||
add_library(mindspore::icui18n ALIAS icu4c::${LIB_ICU_I18N})
|
||||
add_definitions(-D ENABLE_ICU4C)
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/icu4c_filter.json ${JSON_FILE})
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
set(PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/icu4c/icu4c.patch01)
|
||||
set(CONFIGURE_COMMAND ./icu4c/source/runConfigureICU MacOSX --disable-tests --disable-samples --disable-icuio
|
||||
--disable-extras ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json)
|
||||
else()
|
||||
set(PATCHES ${TOP_DIR}/third_party/patch/icu4c/icu4c.patch01)
|
||||
set(CONFIGURE_COMMAND ./icu4c/source/runConfigureICU Linux --enable-rpath --disable-tests --disable-samples
|
||||
--disable-icuio --disable-extras ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json)
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(
|
||||
icu4c
|
||||
VER 67.1
|
||||
LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${PATCHES}
|
||||
CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
|
||||
TARGET_ALIAS mindspore::icuuc icu4c::${LIB_ICU_COMMON}
|
||||
TARGET_ALIAS mindspore::icudata icu4c::${LIB_ICU_DATA}
|
||||
TARGET_ALIAS mindspore::icui18n icu4c::${LIB_ICU_I18N})
|
||||
|
||||
include_directories(${icu4c_INC})
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/change_rpath.cmake)
|
||||
changerpath($<TARGET_FILE:icu4c::${LIB_ICU_COMMON}> ${LIB_ICU_COMMON} "libicuuc;libicudata")
|
||||
changerpath($<TARGET_FILE:icu4c::${LIB_ICU_DATA}> ${LIB_ICU_DATA} "libicudata")
|
||||
changerpath($<TARGET_FILE:icu4c::${LIB_ICU_I18N}> ${LIB_ICU_I18N} "libicuuc;libicudata;libicui18n")
|
||||
endif()
|
||||
add_definitions(-DENABLE_ICU4C)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,56 +1,58 @@
|
|||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/libjpeg-turbo/repository/archive/2.0.4.tar.gz")
|
||||
set(MD5 "44c43e4a9fb352f47090804529317c88")
|
||||
set(REQ_URL "https://gitee.com/mirrors/libjpeg-turbo/repository/archive/2.0.4.tar.gz")
|
||||
set(MD5 "44c43e4a9fb352f47090804529317c88")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.4.tar.gz")
|
||||
set(MD5 "44c43e4a9fb352f47090804529317c88")
|
||||
set(REQ_URL "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.4.tar.gz")
|
||||
set(MD5 "44c43e4a9fb352f47090804529317c88")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \
|
||||
set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \
|
||||
-O2")
|
||||
else()
|
||||
set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC \
|
||||
set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC \
|
||||
-D_FORTIFY_SOURCE=2 -O2")
|
||||
endif()
|
||||
|
||||
set(jpeg_turbo_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack,-s")
|
||||
|
||||
|
||||
set(jpeg_turbo_USE_STATIC_LIBS ON)
|
||||
set(JPEG_TURBO_PATCHE ${CMAKE_SOURCE_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001)
|
||||
set(CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=TRUE -DWITH_SIMD=ON)
|
||||
if(BUILD_LITE)
|
||||
set(jpeg_turbo_USE_STATIC_LIBS OFF)
|
||||
set(JPEG_TURBO_PATCHE ${TOP_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001)
|
||||
if(PLATFORM_ARM64)
|
||||
set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=arm64-v8a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=c++_shared -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
if(PLATFORM_ARM32)
|
||||
set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=armeabi-v7a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=c++_shared -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
set(jpeg_turbo_USE_STATIC_LIBS OFF)
|
||||
set(JPEG_TURBO_PATCHE ${TOP_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001)
|
||||
if(PLATFORM_ARM64)
|
||||
set(CMAKE_OPTION
|
||||
-DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=arm64-v8a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=c++_shared
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
if(PLATFORM_ARM32)
|
||||
set(CMAKE_OPTION
|
||||
-DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
-DANDROID_NATIVE_API_LEVEL=19
|
||||
-DANDROID_NDK=$ENV{ANDROID_NDK}
|
||||
-DANDROID_ABI=armeabi-v7a
|
||||
-DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
|
||||
-DANDROID_STL=c++_shared
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(jpeg_turbo
|
||||
VER 2.0.4
|
||||
LIBS jpeg turbojpeg
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION ${CMAKE_OPTION}
|
||||
PATCHES ${JPEG_TURBO_PATCHE}
|
||||
)
|
||||
mindspore_add_pkg(
|
||||
jpeg_turbo
|
||||
VER 2.0.4
|
||||
LIBS jpeg turbojpeg
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION ${CMAKE_OPTION}
|
||||
PATCHES ${JPEG_TURBO_PATCHE}
|
||||
TARGET_ALIAS mindspore::jpeg_turbo jpeg_turbo::jpeg
|
||||
TARGET_ALIAS mindspore::turbojpeg jpeg_turbo::turbojpeg)
|
||||
include_directories(${jpeg_turbo_INC})
|
||||
add_library(mindspore::jpeg_turbo ALIAS jpeg_turbo::jpeg)
|
||||
add_library(mindspore::turbojpeg ALIAS jpeg_turbo::turbojpeg)
|
||||
|
|
|
|||
|
|
@ -1,26 +1,27 @@
|
|||
if(MSVC)
|
||||
set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_CFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_CFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
else()
|
||||
set(nlohmann_json373_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(nlohmann_json373_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(nlohmann_json373_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(nlohmann_json373_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/JSON-for-Modern-CPP/repository/archive/v3.7.3.zip")
|
||||
set(MD5 "b758acca4f3e133bacf919e31ca302e3")
|
||||
set(INCLUDE "./include")
|
||||
set(REQ_URL "https://gitee.com/mirrors/JSON-for-Modern-CPP/repository/archive/v3.7.3.zip")
|
||||
set(MD5 "b758acca4f3e133bacf919e31ca302e3")
|
||||
set(INCLUDE "./include")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/nlohmann/json/releases/download/v3.7.3/include.zip")
|
||||
set(MD5 "fb96f95cdf609143e998db401ca4f324")
|
||||
set(INCLUDE "./include")
|
||||
set(REQ_URL "https://github.com/nlohmann/json/releases/download/v3.7.3/include.zip")
|
||||
set(MD5 "fb96f95cdf609143e998db401ca4f324")
|
||||
set(INCLUDE "./include")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(nlohmann_json373
|
||||
VER 3.7.3
|
||||
HEAD_ONLY ${INCLUDE}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5})
|
||||
mindspore_add_pkg(
|
||||
nlohmann_json373
|
||||
VER 3.7.3
|
||||
HEAD_ONLY ${INCLUDE}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
TARGET_ALIAS mindspore::json nlohmann_json373)
|
||||
include_directories(${nlohmann_json373_INC})
|
||||
add_library(mindspore::json ALIAS nlohmann_json373)
|
||||
|
|
|
|||
|
|
@ -1,30 +1,30 @@
|
|||
set(libevent_CFLAGS "-fstack-protector-all -D_FORTIFY_SOURCE=2 -O2")
|
||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
set(libevent_LDFLAGS "-Wl,-z,now")
|
||||
set(libevent_LDFLAGS "-Wl,-z,now")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/libevent/repository/archive/release-2.1.12-stable.tar.gz")
|
||||
set(MD5 "0d5a27436bf7ff8253420c8cf09f47ca")
|
||||
set(REQ_URL "https://gitee.com/mirrors/libevent/repository/archive/release-2.1.12-stable.tar.gz")
|
||||
set(MD5 "0d5a27436bf7ff8253420c8cf09f47ca")
|
||||
else()
|
||||
set(REQ_URL
|
||||
set(REQ_URL
|
||||
"https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz")
|
||||
set(MD5 "b5333f021f880fe76490d8a799cd79f4")
|
||||
set(MD5 "b5333f021f880fe76490d8a799cd79f4")
|
||||
endif()
|
||||
|
||||
message("libevent using openssl stub dir: " ${openssl_ROOT})
|
||||
|
||||
mindspore_add_pkg(libevent
|
||||
VER 2.1.12
|
||||
LIBS event event_pthreads event_core event_openssl
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/libevent/libevent.patch001
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING=OFF -DOPENSSL_ROOT_DIR:PATH=${openssl_ROOT})
|
||||
mindspore_add_pkg(
|
||||
libevent
|
||||
VER 2.1.12
|
||||
LIBS event event_pthreads event_core event_openssl
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/libevent/libevent.patch001
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING=OFF -DOPENSSL_ROOT_DIR:PATH=${openssl_ROOT}
|
||||
TARGET_ALIAS mindspore::event libevent::event
|
||||
TARGET_ALIAS mindspore::event_pthreads libevent::event_pthreads
|
||||
TARGET_ALIAS mindspore::event_core libevent::event_core
|
||||
TARGET_ALIAS mindspore::event_openssl libevent::event_openssl)
|
||||
|
||||
include_directories(${libevent_INC})
|
||||
|
||||
add_library(mindspore::event ALIAS libevent::event)
|
||||
add_library(mindspore::event_pthreads ALIAS libevent::event_pthreads)
|
||||
add_library(mindspore::event_core ALIAS libevent::event_core)
|
||||
add_library(mindspore::event_openssl ALIAS libevent::event_openssl)
|
||||
|
|
|
|||
|
|
@ -1,37 +1,45 @@
|
|||
set(onednn_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(onednn_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
|
||||
if(USE_MS_THREADPOOL_FOR_DNNL)
|
||||
set(USE_MS_THREADPOOL "-DDNNL_CPU_RUNTIME=THREADPOOL")
|
||||
set(USE_MS_THREADPOOL "-DDNNL_CPU_RUNTIME=THREADPOOL")
|
||||
else()
|
||||
set(USE_MS_THREADPOOL "")
|
||||
endif()
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
mindspore_add_pkg(onednn
|
||||
VER 2.2
|
||||
LIBS dnnl mkldnn
|
||||
HEAD_ONLY ./include
|
||||
RELEASE on
|
||||
URL http://tools.mindspore.cn/libs/dnnl/dnnl_win_2.2.0_cpu_vcomp.zip
|
||||
MD5 139fcdbd601a970fb86dd15b30ba5ae3)
|
||||
else()
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/MKL-DNN/repository/archive/v2.2.tar.gz")
|
||||
set(MD5 "49c650e0cc24ef9ae7033d4cb22ebfad")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/oneapi-src/oneDNN/archive/v2.2.tar.gz")
|
||||
set(MD5 "6a062e36ea1bee03ff55bf44ee243e27")
|
||||
endif()
|
||||
mindspore_add_pkg(onednn
|
||||
VER 2.2
|
||||
LIBS dnnl mkldnn
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/onednn/0001-fix-user-threadpool-bug.patch
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/onednn/0002-fix-pool-nthr-bug.patch
|
||||
CMAKE_OPTION -DDNNL_ARCH_OPT_FLAGS='' -DDNNL_BUILD_EXAMPLES=OFF -DDNNL_BUILD_TESTS=OFF
|
||||
${USE_MS_THREADPOOL} -DDNNL_ENABLE_CONCURRENT_EXEC=ON)
|
||||
set(USE_MS_THREADPOOL "")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
set(ARGS HEAD_ONLY ./include RELEASE on)
|
||||
|
||||
set(REQ_URL https://github.com/oneapi-src/oneDNN/releases/download/v2.2/dnnl_win_2.2.0_cpu_vcomp.zip)
|
||||
set(MD5 fa12c693b2ec07700d174e1e99d60a7e)
|
||||
else()
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/MKL-DNN/repository/archive/v2.2.tar.gz")
|
||||
set(MD5 "49c650e0cc24ef9ae7033d4cb22ebfad")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/oneapi-src/oneDNN/archive/v2.2.tar.gz")
|
||||
set(MD5 "6a062e36ea1bee03ff55bf44ee243e27")
|
||||
endif()
|
||||
set(ARGS
|
||||
PATCHES
|
||||
${CMAKE_SOURCE_DIR}/third_party/patch/onednn/0001-fix-user-threadpool-bug.patch
|
||||
PATCHES
|
||||
${CMAKE_SOURCE_DIR}/third_party/patch/onednn/0002-fix-pool-nthr-bug.patch
|
||||
CMAKE_OPTION
|
||||
-DDNNL_ARCH_OPT_FLAGS=''
|
||||
-DDNNL_BUILD_EXAMPLES=OFF
|
||||
-DDNNL_BUILD_TESTS=OFF
|
||||
${USE_MS_THREADPOOL}
|
||||
-DDNNL_ENABLE_CONCURRENT_EXEC=ON)
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(
|
||||
onednn
|
||||
VER 2.2
|
||||
LIBS dnnl mkldnn
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5} ${ARGS}
|
||||
TARGET_ALIAS mindspore::dnnl onednn::dnnl
|
||||
TARGET_ALIAS mindspore::mkldnn onednn::mkldnn)
|
||||
|
||||
include_directories(${onednn_INC})
|
||||
add_library(mindspore::dnnl ALIAS onednn::dnnl)
|
||||
add_library(mindspore::mkldnn ALIAS onednn::mkldnn)
|
||||
|
|
|
|||
|
|
@ -1,19 +1,21 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/nccl/repository/archive/v2.7.6-1.tar.gz")
|
||||
set(MD5 "6884364c2b1cf229f0bdaf94efcb5782")
|
||||
set(REQ_URL "https://gitee.com/mirrors/nccl/repository/archive/v2.7.6-1.tar.gz")
|
||||
set(MD5 "6884364c2b1cf229f0bdaf94efcb5782")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/NVIDIA/nccl/archive/v2.7.6-1.tar.gz")
|
||||
set(MD5 "073b19899f374c5ba07d2db02dc38f9f")
|
||||
set(REQ_URL "https://github.com/NVIDIA/nccl/archive/v2.7.6-1.tar.gz")
|
||||
set(MD5 "073b19899f374c5ba07d2db02dc38f9f")
|
||||
endif()
|
||||
|
||||
set(nccl_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
mindspore_add_pkg(nccl
|
||||
VER 2.7.6-1
|
||||
LIBS nccl
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
BUILD_OPTION src.build
|
||||
INSTALL_INCS build/include/*
|
||||
INSTALL_LIBS build/lib/*)
|
||||
mindspore_add_pkg(
|
||||
nccl
|
||||
VER 2.7.6-1
|
||||
LIBS nccl
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
BUILD_OPTION src.build
|
||||
INSTALL_INCS build/include/*
|
||||
INSTALL_LIBS build/lib/*
|
||||
TARGET_ALIAS mindspore::nccl nccl::nccl
|
||||
)
|
||||
include_directories(${nccl_INC})
|
||||
add_library(mindspore::nccl ALIAS nccl::nccl)
|
||||
|
|
|
|||
|
|
@ -1,18 +1,20 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/ompi/repository/archive/v4.0.3.tar.gz")
|
||||
set(MD5 "70f764c26ab6cd99487d58be0cd8c409")
|
||||
set(REQ_URL "https://gitee.com/mirrors/ompi/repository/archive/v4.0.3.tar.gz")
|
||||
set(MD5 "70f764c26ab6cd99487d58be0cd8c409")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/open-mpi/ompi/archive/v4.0.3.tar.gz")
|
||||
set(MD5 "86cb724e8fe71741ad3be4e7927928a2")
|
||||
set(REQ_URL "https://github.com/open-mpi/ompi/archive/v4.0.3.tar.gz")
|
||||
set(MD5 "86cb724e8fe71741ad3be4e7927928a2")
|
||||
endif()
|
||||
|
||||
set(ompi_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
mindspore_add_pkg(ompi
|
||||
VER 4.0.3
|
||||
LIBS mpi
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PRE_CONFIGURE_COMMAND ./autogen.pl
|
||||
CONFIGURE_COMMAND ./configure)
|
||||
mindspore_add_pkg(
|
||||
ompi
|
||||
VER 4.0.3
|
||||
LIBS mpi
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
PRE_CONFIGURE_COMMAND ./autogen.pl
|
||||
CONFIGURE_COMMAND ./configure
|
||||
TARGET_ALIAS mindspore::ompi ompi::mpi
|
||||
)
|
||||
include_directories(${ompi_INC})
|
||||
add_library(mindspore::ompi ALIAS ompi::mpi)
|
||||
|
|
@ -1,130 +1,96 @@
|
|||
if(MSVC)
|
||||
set(opencv_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(opencv_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(opencv_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
set(opencv_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(opencv_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(opencv_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(opencv_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_LDFLAGS "-Wl")
|
||||
set(opencv_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_LDFLAGS "-Wl")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-attributes -Wno-unknown-pragmas")
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-unused-value -Wno-implicit-fallthrough")
|
||||
set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-attributes -Wno-unknown-pragmas")
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-unused-value -Wno-implicit-fallthrough")
|
||||
else()
|
||||
set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2")
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -O2")
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -s")
|
||||
set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2")
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -O2")
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2")
|
||||
set(opencv_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -s")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/opencv/repository/archive/4.5.2.tar.gz")
|
||||
set(MD5 "d3141f649ab2d76595fdd8991ee15c55")
|
||||
set(REQ_URL "https://gitee.com/mirrors/opencv/repository/archive/4.5.2.tar.gz")
|
||||
set(MD5 "d3141f649ab2d76595fdd8991ee15c55")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/opencv/opencv/archive/4.5.2.tar.gz")
|
||||
set(MD5 "d3141f649ab2d76595fdd8991ee15c55")
|
||||
set(REQ_URL "https://github.com/opencv/opencv/archive/4.5.2.tar.gz")
|
||||
set(MD5 "d3141f649ab2d76595fdd8991ee15c55")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
mindspore_add_pkg(opencv
|
||||
VER 4.5.2
|
||||
LIBS opencv_core452.lib opencv_imgcodecs452.lib opencv_imgproc452.lib
|
||||
LIB_PATH x64/*/lib
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF
|
||||
-DWITH_ADE=OFF
|
||||
-DBUILD_ZLIB=ON
|
||||
-DBUILD_JPEG=ON
|
||||
-DBUILD_PNG=ON
|
||||
-DBUILD_OPENEXR=OFF
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_PERF_TESTS=OFF
|
||||
-DBUILD_opencv_apps=OFF
|
||||
-DCMAKE_SKIP_RPATH=TRUE
|
||||
-DBUILD_opencv_python3=OFF
|
||||
-DBUILD_opencv_videoio=OFF
|
||||
-DWITH_FFMPEG=OFF
|
||||
-DWITH_TIFF=ON
|
||||
-DBUILD_TIFF=OFF
|
||||
-DWITH_JASPER=OFF
|
||||
-DBUILD_JASPER=OFF
|
||||
-DCV_TRACE=OFF # cause memory usage increacing
|
||||
-DTIFF_INCLUDE_DIR=${tiff_INC}
|
||||
-DTIFF_LIBRARY=${tiff_LIB})
|
||||
elseif(WIN32)
|
||||
mindspore_add_pkg(opencv
|
||||
VER 4.5.2
|
||||
LIBS libopencv_core452.dll.a libopencv_imgcodecs452.dll.a libopencv_imgproc452.dll.a
|
||||
LIB_PATH x64/mingw/lib
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF
|
||||
-DWITH_ADE=OFF
|
||||
-DBUILD_ZLIB=ON
|
||||
-DBUILD_JPEG=ON
|
||||
-DBUILD_PNG=ON
|
||||
-DBUILD_OPENEXR=OFF
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_PERF_TESTS=OFF
|
||||
-DBUILD_opencv_apps=OFF
|
||||
-DCMAKE_SKIP_RPATH=TRUE
|
||||
-DBUILD_opencv_python3=OFF
|
||||
-DBUILD_opencv_videoio=OFF
|
||||
-DWITH_FFMPEG=OFF
|
||||
-DWITH_TIFF=ON
|
||||
-DBUILD_TIFF=OFF
|
||||
-DWITH_JASPER=OFF
|
||||
-DBUILD_JASPER=OFF
|
||||
-DCV_TRACE=OFF # cause memory usage increacing
|
||||
-DWITH_LAPACK=OFF
|
||||
-DTIFF_INCLUDE_DIR=${tiff_INC}
|
||||
-DTIFF_LIBRARY=${tiff_LIB})
|
||||
else()
|
||||
mindspore_add_pkg(opencv
|
||||
VER 4.5.2
|
||||
LIBS opencv_core opencv_imgcodecs opencv_imgproc
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF
|
||||
-DWITH_ADE=OFF
|
||||
-DBUILD_ZLIB=ON
|
||||
-DBUILD_JPEG=ON
|
||||
-DBUILD_PNG=ON
|
||||
-DBUILD_OPENEXR=OFF
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_PERF_TESTS=OFF
|
||||
-DBUILD_opencv_apps=OFF
|
||||
-DCMAKE_SKIP_RPATH=TRUE
|
||||
-DBUILD_opencv_python3=OFF
|
||||
-DWITH_FFMPEG=OFF
|
||||
-DWITH_TIFF=ON
|
||||
-DBUILD_TIFF=OFF
|
||||
-DWITH_JASPER=OFF
|
||||
-DBUILD_JASPER=OFF
|
||||
-DCV_TRACE=OFF # cause memory usage increacing
|
||||
-DWITH_LAPACK=OFF
|
||||
-DTIFF_INCLUDE_DIR=${tiff_INC}
|
||||
-DTIFF_LIBRARY=${tiff_LIB})
|
||||
endif()
|
||||
set(
|
||||
CMAKE_OPTION
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DWITH_PROTOBUF=OFF
|
||||
-DWITH_WEBP=OFF
|
||||
-DWITH_IPP=OFF
|
||||
-DWITH_ADE=OFF
|
||||
-DBUILD_ZLIB=ON
|
||||
-DBUILD_JPEG=ON
|
||||
-DBUILD_PNG=ON
|
||||
-DBUILD_OPENEXR=OFF
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_PERF_TESTS=OFF
|
||||
-DBUILD_opencv_apps=OFF
|
||||
-DCMAKE_SKIP_RPATH=TRUE
|
||||
-DBUILD_opencv_python3=OFF
|
||||
-DWITH_FFMPEG=OFF
|
||||
-DWITH_TIFF=ON
|
||||
-DBUILD_TIFF=OFF
|
||||
-DWITH_JASPER=OFF
|
||||
-DBUILD_JASPER=OFF
|
||||
-DCV_TRACE=OFF # cause memory usage increacing
|
||||
-DTIFF_INCLUDE_DIR=${tiff_INC}
|
||||
-DTIFF_LIBRARY=${tiff_LIB}
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
include_directories(${opencv_INC})
|
||||
add_library(mindspore::opencv_core ALIAS opencv::opencv_core452.lib)
|
||||
add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs452.lib)
|
||||
add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc452.lib)
|
||||
set(LIBS opencv_core452.lib opencv_imgcodecs452.lib opencv_imgproc452.lib)
|
||||
set(LIB_PATH LIB_PATH x64/*/lib)
|
||||
list(APPEND CMAKE OPTION -DBUILD_opencv_videoio=OFF)
|
||||
set(TARGET_ALIAS TARGET_ALIAS mindspore::opencv_core opencv::opencv_core452.lib)
|
||||
list(APPEND TARGET_ALIAS TARGET_ALIAS mindspore::opencv_imgcodecs opencv::opencv_imgcodecs452.lib)
|
||||
list(APPEND TARGET_ALIAS TARGET_ALIAS mindspore::opencv_imgproc opencv::opencv_imgproc452.lib)
|
||||
elseif(WIN32)
|
||||
include_directories(${opencv_INC})
|
||||
add_library(mindspore::opencv_core ALIAS opencv::libopencv_core452.dll.a)
|
||||
add_library(mindspore::opencv_imgcodecs ALIAS opencv::libopencv_imgcodecs452.dll.a)
|
||||
add_library(mindspore::opencv_imgproc ALIAS opencv::libopencv_imgproc452.dll.a)
|
||||
set(LIBS libopencv_core452.dll.a libopencv_imgcodecs452.dll.a libopencv_imgproc452.dll.a)
|
||||
set(LIB_PATH LIB_PATH x64/mingw/lib)
|
||||
list(APPEND CMAKE_OPTION -DBUILD_opencv_videoio=OFF -DWITH_LAPACK=OFF)
|
||||
set(TARGET_ALIAS TARGET_ALIAS mindspore::opencv_core opencv::libopencv_core452.dll.a)
|
||||
list(APPEND TARGET_ALIAS TARGET_ALIAS mindspore::opencv_imgcodecs opencv::libopencv_imgcodecs452.dll.a)
|
||||
list(APPEND TARGET_ALIAS TARGET_ALIAS mindspore::opencv_imgproc opencv::libopencv_imgproc452.dll.a)
|
||||
else()
|
||||
include_directories(${opencv_INC}/opencv4)
|
||||
add_library(mindspore::opencv_core ALIAS opencv::opencv_core)
|
||||
add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs)
|
||||
add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc)
|
||||
set(LIBS opencv_core opencv_imgcodecs opencv_imgproc)
|
||||
|
||||
list(APPEND CMAKE_OPTION -DWITH_LAPACK=OFF)
|
||||
set(TARGET_ALIAS TARGET_ALIAS mindspore::opencv_core opencv::opencv_core)
|
||||
list(APPEND TARGET_ALIAS TARGET_ALIAS mindspore::opencv_imgcodecs opencv::opencv_imgcodecs)
|
||||
list(APPEND TARGET_ALIAS TARGET_ALIAS mindspore::opencv_imgproc opencv::opencv_imgproc)
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(
|
||||
opencv
|
||||
VER 4.5.2
|
||||
LIBS ${LIBS} ${LIB_PATH}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION ${CMAKE_OPTION} ${TARGET_ALIAS}
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
include_directories(${opencv_INC})
|
||||
elseif(WIN32)
|
||||
include_directories(${opencv_INC})
|
||||
else()
|
||||
include_directories(${opencv_INC}/opencv4)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@ else()
|
|||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR APPLE)
|
||||
mindspore_add_pkg(openssl
|
||||
mindspore_add_pkg(
|
||||
openssl
|
||||
VER 1.1.1k
|
||||
LIBS ssl crypto
|
||||
URL ${REQ_URL}
|
||||
|
|
@ -21,8 +22,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR APPLE)
|
|||
CONFIGURE_COMMAND ./config no-zlib no-shared
|
||||
PATCHES ${OPENSSL_PATCH_ROOT}/CVE-2021-3711.patch
|
||||
PATCHES ${OPENSSL_PATCH_ROOT}/CVE-2021-3712.patch
|
||||
)
|
||||
TARGET_ALIAS mindspore::ssl openssl::ssl
|
||||
TARGET_ALIAS mindspore::crypto openssl::crypto)
|
||||
include_directories(${openssl_INC})
|
||||
add_library(mindspore::ssl ALIAS openssl::ssl)
|
||||
add_library(mindspore::crypto ALIAS openssl::crypto)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,34 +1,34 @@
|
|||
set(protobuf_USE_STATIC_LIBS ON)
|
||||
if(BUILD_LITE)
|
||||
if(MSVC)
|
||||
set(protobuf_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(protobuf_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(protobuf_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
set(_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
||||
else()
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \
|
||||
if(MSVC)
|
||||
set(protobuf_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set(protobuf_CFLAGS "${CMAKE_C_FLAGS}")
|
||||
set(protobuf_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
set(_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
|
||||
else()
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \
|
||||
-fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
else()
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC \
|
||||
-fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \
|
||||
-fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
else()
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \
|
||||
-fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
else()
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC \
|
||||
-fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \
|
||||
-fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
else()
|
||||
set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \
|
||||
-fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2")
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
endif()
|
||||
set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
|
||||
set(_ms_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
|
|
@ -37,120 +37,134 @@ string(REPLACE " -Wall" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|||
string(REPLACE " -Werror" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/protobuf_source/repository/archive/v3.13.0.tar.gz")
|
||||
set(MD5 "53ab10736257b3c61749de9800b8ce97")
|
||||
set(REQ_URL "https://gitee.com/mirrors/protobuf_source/repository/archive/v3.13.0.tar.gz")
|
||||
set(MD5 "53ab10736257b3c61749de9800b8ce97")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz")
|
||||
set(MD5 "1a6274bc4a65b55a6fa70e264d796490")
|
||||
set(REQ_URL "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz")
|
||||
set(MD5 "1a6274bc4a65b55a6fa70e264d796490")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(protobuf
|
||||
VER 3.13.0
|
||||
LIBS protobuf
|
||||
EXE protoc
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_PATH cmake/
|
||||
CMAKE_OPTION -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release)
|
||||
mindspore_add_pkg(
|
||||
protobuf
|
||||
VER 3.13.0
|
||||
LIBS protobuf
|
||||
EXE protoc
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_PATH cmake/
|
||||
CMAKE_OPTION -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release
|
||||
TARGET_ALIAS mindspore::protobuf protobuf::protobuf)
|
||||
|
||||
include_directories(${protobuf_INC})
|
||||
add_library(mindspore::protobuf ALIAS protobuf::protobuf)
|
||||
set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS})
|
||||
set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS})
|
||||
if(MSVC)
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX, ${_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX})
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX, ${_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX})
|
||||
endif()
|
||||
|
||||
function(common_protobuf_generate path c_var h_var)
|
||||
if(NOT ARGN)
|
||||
message(SEND_ERROR "Error: ms_protobuf_generate() called without any proto files")
|
||||
return()
|
||||
endif()
|
||||
if(NOT ARGN)
|
||||
message(SEND_ERROR "Error: ms_protobuf_generate() called without any proto files")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(${c_var})
|
||||
set(${h_var})
|
||||
set(${c_var})
|
||||
set(${h_var})
|
||||
|
||||
foreach(file ${ARGN})
|
||||
get_filename_component(abs_file ${file} ABSOLUTE)
|
||||
get_filename_component(file_name ${file} NAME_WE)
|
||||
get_filename_component(file_dir ${abs_file} PATH)
|
||||
file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir})
|
||||
foreach(file ${ARGN})
|
||||
get_filename_component(abs_file ${file} ABSOLUTE)
|
||||
get_filename_component(file_name ${file} NAME_WE)
|
||||
get_filename_component(file_dir ${abs_file} PATH)
|
||||
file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir})
|
||||
|
||||
list(APPEND ${c_var} "${path}/${file_name}.pb.cc")
|
||||
list(APPEND ${h_var} "${path}/${file_name}.pb.h")
|
||||
add_custom_command(
|
||||
OUTPUT "${path}/${file_name}.pb.cc" "${path}/${file_name}.pb.h"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${path}"
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${path} ${abs_file}
|
||||
DEPENDS protobuf::protoc ${abs_file}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM)
|
||||
endforeach()
|
||||
list(APPEND ${c_var} "${path}/${file_name}.pb.cc")
|
||||
list(APPEND ${h_var} "${path}/${file_name}.pb.h")
|
||||
add_custom_command(
|
||||
OUTPUT "${path}/${file_name}.pb.cc" "${path}/${file_name}.pb.h"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${path}"
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${path} ${abs_file}
|
||||
DEPENDS protobuf::protoc ${abs_file}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${file}"
|
||||
VERBATIM)
|
||||
endforeach()
|
||||
|
||||
set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE)
|
||||
set(${c_var} ${${c_var}} PARENT_SCOPE)
|
||||
set(${h_var} ${${h_var}} PARENT_SCOPE)
|
||||
set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE)
|
||||
set(${c_var}
|
||||
${${c_var}}
|
||||
PARENT_SCOPE)
|
||||
set(${h_var}
|
||||
${${h_var}}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(ms_protobuf_generate c_var h_var)
|
||||
common_protobuf_generate(${CMAKE_BINARY_DIR}/proto ${c_var} ${h_var} ${ARGN})
|
||||
set(${c_var} ${${c_var}} PARENT_SCOPE)
|
||||
set(${h_var} ${${h_var}} PARENT_SCOPE)
|
||||
common_protobuf_generate(${CMAKE_BINARY_DIR}/proto ${c_var} ${h_var} ${ARGN})
|
||||
set(${c_var}
|
||||
${${c_var}}
|
||||
PARENT_SCOPE)
|
||||
set(${h_var}
|
||||
${${h_var}}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(ms_protobuf_generate_py c_var h_var py_var)
|
||||
if(NOT ARGN)
|
||||
message(SEND_ERROR "Error: ms_protobuf_generate() called without any proto files")
|
||||
return()
|
||||
if(NOT ARGN)
|
||||
message(SEND_ERROR "Error: ms_protobuf_generate() called without any proto files")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(${c_var})
|
||||
set(${h_var})
|
||||
set(${py_var})
|
||||
|
||||
foreach(file ${ARGN})
|
||||
get_filename_component(abs_file ${file} ABSOLUTE)
|
||||
get_filename_component(file_name ${file} NAME_WE)
|
||||
get_filename_component(file_dir ${abs_file} PATH)
|
||||
|
||||
list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc")
|
||||
list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h")
|
||||
list(APPEND ${py_var} "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py")
|
||||
if(WIN32)
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto"
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND perl -pi.bak -e "s/import (.+_pb2.*)/from . import \\1/" "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
"${PROJECT_SOURCE_DIR}/mindspore/python/mindspore/train/"
|
||||
DEPENDS protobuf::protoc ${abs_file}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${file}"
|
||||
VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto"
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND perl -pi -e "s/import (.+_pb2.*)/from . import \\1/" "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
COMMAND cp "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
"${PROJECT_SOURCE_DIR}/mindspore/python/mindspore/train/"
|
||||
DEPENDS protobuf::protoc ${abs_file}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${file}"
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
set(${c_var})
|
||||
set(${h_var})
|
||||
set(${py_var})
|
||||
|
||||
foreach(file ${ARGN})
|
||||
get_filename_component(abs_file ${file} ABSOLUTE)
|
||||
get_filename_component(file_name ${file} NAME_WE)
|
||||
get_filename_component(file_dir ${abs_file} PATH)
|
||||
|
||||
list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc")
|
||||
list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h")
|
||||
list(APPEND ${py_var} "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py")
|
||||
if(WIN32)
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto"
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND perl -pi.bak -e "s/import (.+_pb2.*)/from . import \\1/"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
"${PROJECT_SOURCE_DIR}/mindspore/python/mindspore/train/"
|
||||
DEPENDS protobuf::protoc ${abs_file}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto"
|
||||
COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file}
|
||||
COMMAND perl -pi -e "s/import (.+_pb2.*)/from . import \\1/"
|
||||
"${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
COMMAND cp "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py"
|
||||
"${PROJECT_SOURCE_DIR}/mindspore/python/mindspore/train/"
|
||||
DEPENDS protobuf::protoc ${abs_file}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM)
|
||||
endif()
|
||||
endforeach()
|
||||
set_source_files_properties(${${c_var}} ${${h_var}} ${${py_var}} PROPERTIES GENERATED TRUE)
|
||||
set(${c_var} ${${c_var}} PARENT_SCOPE)
|
||||
set(${h_var} ${${h_var}} PARENT_SCOPE)
|
||||
set(${py_var} ${${py_var}} PARENT_SCOPE)
|
||||
endforeach()
|
||||
set_source_files_properties(${${c_var}} ${${h_var}} ${${py_var}} PROPERTIES GENERATED TRUE)
|
||||
set(${c_var}
|
||||
${${c_var}}
|
||||
PARENT_SCOPE)
|
||||
set(${h_var}
|
||||
${${h_var}}
|
||||
PARENT_SCOPE)
|
||||
set(${py_var}
|
||||
${${py_var}}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
|
|
|||
|
|
@ -1,61 +1,47 @@
|
|||
set(PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
if(PYTHON_VERSION MATCHES "3.9")
|
||||
set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz")
|
||||
set(MD5 "cd04f7bd275fedb97e8b583c115769e6")
|
||||
elseif(PYTHON_VERSION MATCHES "3.8")
|
||||
set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz")
|
||||
set(MD5 "cd04f7bd275fedb97e8b583c115769e6")
|
||||
elseif(PYTHON_VERSION MATCHES "3.7")
|
||||
set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.4.3.tar.gz")
|
||||
set(MD5 "8f69438201bc824c63e5774bf8c1d422")
|
||||
else()
|
||||
message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'")
|
||||
return()
|
||||
endif()
|
||||
if(PYTHON_VERSION VERSION_GREATER_EQUAL 3.8.0)
|
||||
set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz")
|
||||
set(MD5 "cd04f7bd275fedb97e8b583c115769e6")
|
||||
elseif(PYTHON_VERSION VERSION_GREATER_EQUAL 3.7.0)
|
||||
set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.4.3.tar.gz")
|
||||
set(MD5 "8f69438201bc824c63e5774bf8c1d422")
|
||||
else()
|
||||
message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'")
|
||||
return()
|
||||
endif()
|
||||
else()
|
||||
if(PYTHON_VERSION MATCHES "3.9")
|
||||
set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz")
|
||||
set(MD5 "32a7811f3db423df4ebfc731a28e5901")
|
||||
elseif(PYTHON_VERSION MATCHES "3.8")
|
||||
set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz")
|
||||
set(MD5 "32a7811f3db423df4ebfc731a28e5901")
|
||||
elseif(PYTHON_VERSION MATCHES "3.7")
|
||||
set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.4.3.tar.gz")
|
||||
set(MD5 "62254c40f89925bb894be421fe4cdef2")
|
||||
else()
|
||||
message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'")
|
||||
return()
|
||||
endif()
|
||||
if(PYTHON_VERSION VERSION_GREATER_EQUAL 3.8.0)
|
||||
set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz")
|
||||
set(MD5 "32a7811f3db423df4ebfc731a28e5901")
|
||||
elseif(PYTHON_VERSION VERSION_GREATER_EQUAL 3.7.0)
|
||||
set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.4.3.tar.gz")
|
||||
set(MD5 "62254c40f89925bb894be421fe4cdef2")
|
||||
else()
|
||||
message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
set(pybind11_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(pybind11_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
|
||||
if(PYTHON_VERSION MATCHES "3.9")
|
||||
mindspore_add_pkg(pybind11
|
||||
VER 2.6.1
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
|
||||
)
|
||||
elseif(PYTHON_VERSION MATCHES "3.8")
|
||||
mindspore_add_pkg(pybind11
|
||||
VER 2.6.1
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
|
||||
)
|
||||
if(PYTHON_VERSION VERSION_GREATER_EQUAL 3.8.0)
|
||||
set(VER 2.6.1)
|
||||
elseif(PYTHON_VERSION VERSION_GREATER_EQUAL 3.7.0)
|
||||
set(VER 2.4.3)
|
||||
else()
|
||||
mindspore_add_pkg(pybind11
|
||||
VER 2.4.3
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
|
||||
)
|
||||
set(VER NOT-FOUND)
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(
|
||||
pybind11
|
||||
VER ${VER}
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE
|
||||
TARGET_ALIAS mindspore::pybind11_module pybind11::module)
|
||||
|
||||
include_directories(${pybind11_INC})
|
||||
find_package(pybind11 REQUIRED)
|
||||
set_property(TARGET pybind11::module PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
add_library(mindspore::pybind11_module ALIAS pybind11::module)
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/re2/repository/archive/2019-12-01.tar.gz")
|
||||
set(MD5 "527eab0c75d6a1a0044c6eefd816b2fb")
|
||||
set(REQ_URL "https://gitee.com/mirrors/re2/repository/archive/2019-12-01.tar.gz")
|
||||
set(MD5 "527eab0c75d6a1a0044c6eefd816b2fb")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/google/re2/archive/2019-12-01.tar.gz")
|
||||
set(MD5 "527eab0c75d6a1a0044c6eefd816b2fb")
|
||||
set(REQ_URL "https://github.com/google/re2/archive/2019-12-01.tar.gz")
|
||||
set(MD5 "527eab0c75d6a1a0044c6eefd816b2fb")
|
||||
endif()
|
||||
|
||||
if(NOT ENABLE_GLIBCXX)
|
||||
set(re2_CXXFLAGS "${re2_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
set(re2_CXXFLAGS "${re2_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(re2
|
||||
VER 20191201
|
||||
LIBS re2
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE)
|
||||
mindspore_add_pkg(
|
||||
re2
|
||||
VER 20191201
|
||||
LIBS re2
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE
|
||||
TARGET_ALIAS mindspore::re2 re2::re2)
|
||||
|
||||
include_directories(${re2_INC})
|
||||
add_library(mindspore::re2 ALIAS re2::re2)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,49 +1,39 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/sentencepiece/repository/archive/v0.1.92.tar.gz")
|
||||
set(MD5 "0fc99de9f09b9184398f49647791799f")
|
||||
set(REQ_URL "https://gitee.com/mirrors/sentencepiece/repository/archive/v0.1.92.tar.gz")
|
||||
set(MD5 "0fc99de9f09b9184398f49647791799f")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/google/sentencepiece/archive/v0.1.92.tar.gz")
|
||||
set(MD5 "5dfd2241914b5598a68b2a8542ed8e91")
|
||||
set(REQ_URL "https://github.com/google/sentencepiece/archive/v0.1.92.tar.gz")
|
||||
set(MD5 "5dfd2241914b5598a68b2a8542ed8e91")
|
||||
endif()
|
||||
|
||||
set(CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_ENABLE_SHARED=OFF)
|
||||
|
||||
if(WIN32)
|
||||
set(sentencepiece_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result -Wno-stringop-overflow \
|
||||
set(sentencepiece_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result -Wno-stringop-overflow \
|
||||
-Wno-format-extra-args -Wno-format")
|
||||
set(sentencepiece_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
mindspore_add_pkg(sentencepiece
|
||||
VER 0.1.92
|
||||
LIBS sentencepiece sentencepiece_train
|
||||
URL ${REQ_URL}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_USE_BUILTIN_PROTOBUF=ON -DSPM_ENABLE_SHARED=OFF
|
||||
MD5 ${MD5}
|
||||
)
|
||||
set(sentencepiece_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
list(APPEND CMAKE_OPTION -DSPM_USE_BUILTIN_PROTOBUF=ON)
|
||||
else()
|
||||
set(sentencepiece_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result -Wno-sign-compare")
|
||||
set(sentencepiece_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
if(ENABLE_GLIBCXX)
|
||||
mindspore_add_pkg(sentencepiece
|
||||
VER 0.1.92
|
||||
LIBS sentencepiece sentencepiece_train
|
||||
URL ${REQ_URL}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_USE_BUILTIN_PROTOBUF=OFF -DSPM_ENABLE_SHARED=OFF
|
||||
-DPROTOBUF_INC=${protobuf_INC} -DCMAKE_CXX_STANDARD=11
|
||||
MD5 ${MD5}
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sentencepiece/sentencepiece.patch001_cpu
|
||||
)
|
||||
else()
|
||||
mindspore_add_pkg(sentencepiece
|
||||
VER 0.1.92
|
||||
LIBS sentencepiece sentencepiece_train
|
||||
URL ${REQ_URL}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_USE_BUILTIN_PROTOBUF=OFF -DSPM_ENABLE_SHARED=OFF
|
||||
-DPROTOBUF_INC=${protobuf_INC}
|
||||
MD5 ${MD5}
|
||||
PATCHES ${TOP_DIR}/third_party/patch/sentencepiece/sentencepiece.patch001
|
||||
)
|
||||
endif()
|
||||
set(sentencepiece_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result -Wno-sign-compare")
|
||||
set(sentencepiece_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
|
||||
list(APPEND CMAKE_OPTION -DSPM_USE_BUILTIN_PROTOBUF=OFF)
|
||||
if(ENABLE_GLIBCXX)
|
||||
set(PATCHES PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sentencepiece/sentencepiece.patch001_cpu)
|
||||
list(APPEND CMAKE_OPTION -DPROTOBUF_INC=${protobuf_INC} -DCMAKE_CXX_STANDARD=11)
|
||||
else()
|
||||
set(PATCHES PATCHES ${TOP_DIR}/third_party/patch/sentencepiece/sentencepiece.patch001)
|
||||
list(APPEND CMAKE_OPTION -DPROTOBUF_INC=${protobuf_INC})
|
||||
endif()
|
||||
endif()
|
||||
include_directories(${sentencepiece_INC})
|
||||
add_library(mindspore::sentencepiece ALIAS sentencepiece::sentencepiece)
|
||||
add_library(mindspore::sentencepiece_train ALIAS sentencepiece::sentencepiece_train)
|
||||
|
||||
mindspore_add_pkg(
|
||||
sentencepiece
|
||||
VER 0.1.92
|
||||
LIBS sentencepiece sentencepiece_train
|
||||
URL ${REQ_URL}
|
||||
CMAKE_OPTION ${CMAKE_OPTION}
|
||||
MD5 ${MD5} ${PATCHES}
|
||||
TARGET_ALIAS mindspore::sentencepiece sentencepiece::sentencepiece
|
||||
TARGET_ALIAS mindspore::sentencepiece_train sentencepiece::sentencepiece_train)
|
||||
|
||||
include_directories(${sentencepiece_INC})
|
||||
|
|
|
|||
|
|
@ -1,40 +1,36 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/sqlite/repository/archive/version-3.36.0.tar.gz")
|
||||
set(MD5 "715df9c2d2ccf6207158d6c087f711cf")
|
||||
set(REQ_URL "https://gitee.com/mirrors/sqlite/repository/archive/version-3.36.0.tar.gz")
|
||||
set(MD5 "715df9c2d2ccf6207158d6c087f711cf")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/sqlite/sqlite/archive/version-3.36.0.tar.gz")
|
||||
set(MD5 "715df9c2d2ccf6207158d6c087f711cf")
|
||||
set(REQ_URL "https://github.com/sqlite/sqlite/archive/version-3.36.0.tar.gz")
|
||||
set(MD5 "715df9c2d2ccf6207158d6c087f711cf")
|
||||
endif()
|
||||
|
||||
|
||||
if(WIN32)
|
||||
mindspore_add_pkg(sqlite
|
||||
VER 3.36.0
|
||||
LIBS sqlite3
|
||||
URL https://sqlite.org/2021/sqlite-amalgamation-3360000.zip
|
||||
MD5 c5d360c74111bafae1b704721ff18fe6
|
||||
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sqlite/sqlite.windows.patch002
|
||||
CMAKE_OPTION " "
|
||||
)
|
||||
|
||||
set(REQ_URL https://sqlite.org/2021/sqlite-amalgamation-3360000.zip)
|
||||
set(MD5 c5d360c74111bafae1b704721ff18fe6)
|
||||
set(PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sqlite/sqlite.windows.patch002)
|
||||
else()
|
||||
set(sqlite_USE_STATIC_LIBS ON)
|
||||
set(sqlite_CXXFLAGS)
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(sqlite_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \
|
||||
set(sqlite_USE_STATIC_LIBS ON)
|
||||
set(sqlite_CXXFLAGS)
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(sqlite_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \
|
||||
-O2")
|
||||
else()
|
||||
set(sqlite_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC \
|
||||
else()
|
||||
set(sqlite_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC \
|
||||
-D_FORTIFY_SOURCE=2 -O2")
|
||||
set(sqlite_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
mindspore_add_pkg(sqlite
|
||||
VER 3.36.0
|
||||
LIBS sqlite3
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CONFIGURE_COMMAND ./configure --enable-shared=no --disable-tcl --disable-editline --enable-json1)
|
||||
set(sqlite_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
set(CONFIGURE_COMMAND CONFIGURE_COMMAND ./configure --enable-shared=no --disable-tcl --disable-editline
|
||||
--enable-json1)
|
||||
endif()
|
||||
mindspore_add_pkg(
|
||||
sqlite
|
||||
VER 3.36.0
|
||||
LIBS sqlite3
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5} ${PATCHES} ${CONFIGURE_COMMAND}
|
||||
CMAKE_OPTION " "
|
||||
TARGET_ALIAS mindspore::sqlite sqlite::sqlite3)
|
||||
|
||||
include_directories(${sqlite_INC})
|
||||
add_library(mindspore::sqlite ALIAS sqlite::sqlite3)
|
||||
|
|
|
|||
|
|
@ -2,23 +2,23 @@ set(tinyxml2_CXXFLAGS "-fstack-protector -D_FORTIFY_SOURCE=2 -O2 -Wno-unused-res
|
|||
set(tinyxml2_CFLAGS "-fstack-protector -D_FORTIFY_SOURCE=2 -O2")
|
||||
|
||||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/tinyxml2/repository/archive/8.0.0.tar.gz")
|
||||
set(MD5 "5dc535c8b34ee621fe2128f072d275b5")
|
||||
set(REQ_URL "https://gitee.com/mirrors/tinyxml2/repository/archive/8.0.0.tar.gz")
|
||||
set(MD5 "5dc535c8b34ee621fe2128f072d275b5")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/leethomason/tinyxml2/archive/8.0.0.tar.gz")
|
||||
set(MD5 "5dc535c8b34ee621fe2128f072d275b5")
|
||||
set(REQ_URL "https://github.com/leethomason/tinyxml2/archive/8.0.0.tar.gz")
|
||||
set(MD5 "5dc535c8b34ee621fe2128f072d275b5")
|
||||
endif()
|
||||
|
||||
|
||||
if(NOT WIN32 AND NOT APPLE)
|
||||
set(tinyxml2_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
set(tinyxml2_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(tinyxml2
|
||||
VER 8.0.0
|
||||
LIBS tinyxml2
|
||||
URL ${REQ_URL}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release
|
||||
MD5 ${MD5})
|
||||
mindspore_add_pkg(
|
||||
tinyxml2
|
||||
VER 8.0.0
|
||||
LIBS tinyxml2
|
||||
URL ${REQ_URL}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release
|
||||
MD5 ${MD5}
|
||||
TARGET_ALIAS mindspore::tinyxml2 tinyxml2::tinyxml2)
|
||||
include_directories(${tinyxml2_INC})
|
||||
add_library(mindspore::tinyxml2 ALIAS tinyxml2::tinyxml2)
|
||||
|
|
|
|||
|
|
@ -1,17 +1,18 @@
|
|||
if(ENABLE_GITEE)
|
||||
set(REQ_URL "https://gitee.com/mirrors/zlib/repository/archive/v1.2.11.tar.gz")
|
||||
set(MD5 "b0ecd8eda7c5d6ed9b4a4187363482fe")
|
||||
set(REQ_URL "https://gitee.com/mirrors/zlib/repository/archive/v1.2.11.tar.gz")
|
||||
set(MD5 "b0ecd8eda7c5d6ed9b4a4187363482fe")
|
||||
else()
|
||||
set(REQ_URL "https://github.com/madler/zlib/archive/v1.2.11.tar.gz")
|
||||
set(MD5 "0095d2d2d1f3442ce1318336637b695f")
|
||||
set(REQ_URL "https://github.com/madler/zlib/archive/v1.2.11.tar.gz")
|
||||
set(MD5 "0095d2d2d1f3442ce1318336637b695f")
|
||||
endif()
|
||||
|
||||
mindspore_add_pkg(zlib
|
||||
VER 1.2.11
|
||||
LIBS z
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release)
|
||||
mindspore_add_pkg(
|
||||
zlib
|
||||
VER 1.2.11
|
||||
LIBS z
|
||||
URL ${REQ_URL}
|
||||
MD5 ${MD5}
|
||||
CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
TARGET_ALIAS mindspore::z zlib::z)
|
||||
|
||||
include_directories(${zlib_INC})
|
||||
add_library(mindspore::z ALIAS zlib::z)
|
||||
|
|
|
|||
|
|
@ -2,436 +2,636 @@ include(FetchContent)
|
|||
set(FETCHCONTENT_QUIET OFF)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.17.0)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif()
|
||||
|
||||
function(mindspore_add_submodule_obj des_submodule_objs sub_dir submodule_name_obj)
|
||||
|
||||
add_subdirectory(${sub_dir})
|
||||
add_subdirectory(${sub_dir})
|
||||
|
||||
if(NOT TARGET ${submodule_name_obj})
|
||||
message(FATAL_ERROR "Can not find submodule '${submodule_name_obj}'. in ${CMAKE_CURRENT_LIST_FILE}")
|
||||
endif()
|
||||
if("$<TARGET_OBJECTS:${submodule_name_obj}>" IN_LIST ${des_submodule_objs})
|
||||
message(FATAL_ERROR "submodule '${submodule_name_obj}' added more than once. in ${CMAKE_CURRENT_LIST_FILE}")
|
||||
endif()
|
||||
if(NOT TARGET ${submodule_name_obj})
|
||||
message(FATAL_ERROR "Can not find submodule '${submodule_name_obj}'. in ${CMAKE_CURRENT_LIST_FILE}")
|
||||
endif()
|
||||
if("$<TARGET_OBJECTS:${submodule_name_obj}>" IN_LIST ${des_submodule_objs})
|
||||
message(FATAL_ERROR "submodule '${submodule_name_obj}' added more than once. in ${CMAKE_CURRENT_LIST_FILE}")
|
||||
endif()
|
||||
|
||||
set(${des_submodule_objs} ${${des_submodule_objs}} $<TARGET_OBJECTS:${submodule_name_obj}> PARENT_SCOPE)
|
||||
set(${des_submodule_objs}
|
||||
${${des_submodule_objs}} $<TARGET_OBJECTS:${submodule_name_obj}>
|
||||
PARENT_SCOPE)
|
||||
|
||||
endfunction()
|
||||
|
||||
if(DEFINED ENV{MSLIBS_CACHE_PATH})
|
||||
set(_MS_LIB_CACHE $ENV{MSLIBS_CACHE_PATH})
|
||||
set(_MS_LIB_CACHE $ENV{MSLIBS_CACHE_PATH})
|
||||
else()
|
||||
set(_MS_LIB_CACHE ${CMAKE_BINARY_DIR}/.mslib)
|
||||
set(_MS_LIB_CACHE ${CMAKE_BINARY_DIR}/.mslib)
|
||||
endif()
|
||||
message("MS LIBS CACHE PATH: ${_MS_LIB_CACHE}")
|
||||
|
||||
if(NOT EXISTS ${_MS_LIB_CACHE})
|
||||
file(MAKE_DIRECTORY ${_MS_LIB_CACHE})
|
||||
file(MAKE_DIRECTORY ${_MS_LIB_CACHE})
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{MSLIBS_SERVER} AND NOT ENABLE_GITEE)
|
||||
set(LOCAL_LIBS_SERVER $ENV{MSLIBS_SERVER})
|
||||
message("LOCAL_LIBS_SERVER: ${LOCAL_LIBS_SERVER}")
|
||||
set(LOCAL_LIBS_SERVER $ENV{MSLIBS_SERVER})
|
||||
message("LOCAL_LIBS_SERVER: ${LOCAL_LIBS_SERVER}")
|
||||
endif()
|
||||
|
||||
include(ProcessorCount)
|
||||
ProcessorCount(N)
|
||||
if(JOBS)
|
||||
set(THNUM ${JOBS})
|
||||
set(THNUM ${JOBS})
|
||||
else()
|
||||
set(JOBS 8)
|
||||
if(${JOBS} GREATER ${N})
|
||||
set(THNUM ${N})
|
||||
else()
|
||||
set(THNUM ${JOBS})
|
||||
endif()
|
||||
set(JOBS 8)
|
||||
if(${JOBS} GREATER ${N})
|
||||
set(THNUM ${N})
|
||||
else()
|
||||
set(THNUM ${JOBS})
|
||||
endif()
|
||||
endif()
|
||||
message("set make thread num: ${THNUM}")
|
||||
|
||||
if(LOCAL_LIBS_SERVER)
|
||||
if(NOT ENV{no_proxy})
|
||||
set(ENV{no_proxy} "${LOCAL_LIBS_SERVER}")
|
||||
else()
|
||||
string(FIND $ENV{no_proxy} ${LOCAL_LIBS_SERVER} IP_POS)
|
||||
if(${IP_POS} EQUAL -1)
|
||||
set(ENV{no_proxy} "$ENV{no_proxy},${LOCAL_LIBS_SERVER}")
|
||||
endif()
|
||||
if(NOT ENV{no_proxy})
|
||||
set(ENV{no_proxy} "${LOCAL_LIBS_SERVER}")
|
||||
else()
|
||||
string(FIND $ENV{no_proxy} ${LOCAL_LIBS_SERVER} IP_POS)
|
||||
if(${IP_POS} EQUAL -1)
|
||||
set(ENV{no_proxy} "$ENV{no_proxy},${LOCAL_LIBS_SERVER}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
function(__download_pkg pkg_name pkg_url pkg_md5)
|
||||
|
||||
if(LOCAL_LIBS_SERVER)
|
||||
get_filename_component(_URL_FILE_NAME ${pkg_url} NAME)
|
||||
set(pkg_url "http://${LOCAL_LIBS_SERVER}:8081/libs/${pkg_name}/${_URL_FILE_NAME}" ${pkg_url})
|
||||
endif()
|
||||
if(LOCAL_LIBS_SERVER)
|
||||
get_filename_component(_URL_FILE_NAME ${pkg_url} NAME)
|
||||
set(pkg_url "http://${LOCAL_LIBS_SERVER}:8081/libs/${pkg_name}/${_URL_FILE_NAME}" ${pkg_url})
|
||||
endif()
|
||||
|
||||
FetchContent_Declare(
|
||||
${pkg_name}
|
||||
URL ${pkg_url}
|
||||
URL_HASH MD5=${pkg_md5}
|
||||
)
|
||||
FetchContent_GetProperties(${pkg_name})
|
||||
message("download: ${${pkg_name}_SOURCE_DIR} , ${pkg_name} , ${pkg_url}")
|
||||
if(NOT ${pkg_name}_POPULATED)
|
||||
FetchContent_Populate(${pkg_name})
|
||||
set(${pkg_name}_SOURCE_DIR ${${pkg_name}_SOURCE_DIR} PARENT_SCOPE)
|
||||
endif()
|
||||
FetchContent_Declare(
|
||||
${pkg_name}
|
||||
URL ${pkg_url}
|
||||
URL_HASH MD5=${pkg_md5})
|
||||
FetchContent_GetProperties(${pkg_name})
|
||||
message("download: ${${pkg_name}_SOURCE_DIR} , ${pkg_name} , ${pkg_url}")
|
||||
if(NOT ${pkg_name}_POPULATED)
|
||||
FetchContent_Populate(${pkg_name})
|
||||
set(${pkg_name}_SOURCE_DIR
|
||||
${${pkg_name}_SOURCE_DIR}
|
||||
PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
function(__download_pkg_with_git pkg_name pkg_url pkg_git_commit pkg_md5)
|
||||
|
||||
if(LOCAL_LIBS_SERVER)
|
||||
set(pkg_url "http://${LOCAL_LIBS_SERVER}:8081/libs/${pkg_name}/${pkg_git_commit}")
|
||||
FetchContent_Declare(
|
||||
${pkg_name}
|
||||
URL ${pkg_url}
|
||||
URL_HASH MD5=${pkg_md5}
|
||||
)
|
||||
else()
|
||||
if(LOCAL_LIBS_SERVER)
|
||||
set(pkg_url "http://${LOCAL_LIBS_SERVER}:8081/libs/${pkg_name}/${pkg_git_commit}")
|
||||
FetchContent_Declare(
|
||||
${pkg_name}
|
||||
GIT_REPOSITORY ${pkg_url}
|
||||
GIT_TAG ${pkg_git_commit})
|
||||
endif()
|
||||
FetchContent_GetProperties(${pkg_name})
|
||||
message("download: ${${pkg_name}_SOURCE_DIR} , ${pkg_name} , ${pkg_url}")
|
||||
if(NOT ${pkg_name}_POPULATED)
|
||||
FetchContent_Populate(${pkg_name})
|
||||
set(${pkg_name}_SOURCE_DIR ${${pkg_name}_SOURCE_DIR} PARENT_SCOPE)
|
||||
endif()
|
||||
${pkg_name}
|
||||
URL ${pkg_url}
|
||||
URL_HASH MD5=${pkg_md5})
|
||||
else()
|
||||
FetchContent_Declare(
|
||||
${pkg_name}
|
||||
GIT_REPOSITORY ${pkg_url}
|
||||
GIT_TAG ${pkg_git_commit})
|
||||
endif()
|
||||
FetchContent_GetProperties(${pkg_name})
|
||||
message("download: ${${pkg_name}_SOURCE_DIR} , ${pkg_name} , ${pkg_url}")
|
||||
if(NOT ${pkg_name}_POPULATED)
|
||||
FetchContent_Populate(${pkg_name})
|
||||
set(${pkg_name}_SOURCE_DIR
|
||||
${${pkg_name}_SOURCE_DIR}
|
||||
PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
|
||||
function(__find_pkg_then_add_target pkg_name pkg_exe lib_path)
|
||||
|
||||
unset(${pkg_name}_LIBS)
|
||||
unset(${pkg_name}_LIBS)
|
||||
|
||||
message("_FIND:${${pkg_name}_BASE_DIR}")
|
||||
message("_FIND:${${pkg_name}_BASE_DIR}")
|
||||
|
||||
if(pkg_exe)
|
||||
find_program(${pkg_exe}_EXE ${pkg_exe} PATHS ${${pkg_name}_BASE_DIR}/bin NO_DEFAULT_PATH)
|
||||
if(NOT ${pkg_exe}_EXE)
|
||||
return()
|
||||
endif()
|
||||
add_executable(${pkg_name}::${pkg_exe} IMPORTED GLOBAL)
|
||||
set_target_properties(${pkg_name}::${pkg_exe} PROPERTIES
|
||||
IMPORTED_LOCATION ${${pkg_exe}_EXE}
|
||||
)
|
||||
message("found ${${pkg_exe}_EXE}")
|
||||
if(pkg_exe)
|
||||
find_program(
|
||||
${pkg_exe}_EXE ${pkg_exe}
|
||||
PATHS ${${pkg_name}_BASE_DIR}/bin
|
||||
NO_DEFAULT_PATH)
|
||||
if(NOT ${pkg_exe}_EXE)
|
||||
return()
|
||||
endif()
|
||||
if(NOT TARGET ${pkg_name}::${pkg_exe})
|
||||
add_executable(${pkg_name}::${pkg_exe} IMPORTED GLOBAL)
|
||||
set_target_properties(${pkg_name}::${pkg_exe} PROPERTIES IMPORTED_LOCATION ${${pkg_exe}_EXE})
|
||||
endif()
|
||||
message("found ${${pkg_exe}_EXE}")
|
||||
endif()
|
||||
|
||||
foreach(_LIB_NAME ${ARGN})
|
||||
set(_LIB_SEARCH_NAME ${_LIB_NAME})
|
||||
set(_LIB_TYPE SHARED)
|
||||
if(${pkg_name}_USE_STATIC_LIBS)
|
||||
set(_LIB_SEARCH_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}${_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(_LIB_TYPE STATIC)
|
||||
endif()
|
||||
set(${_LIB_NAME}_LIB ${_LIB_NAME}_LIB-NOTFOUND)
|
||||
if(APPLE)
|
||||
find_library(
|
||||
${_LIB_NAME}_LIB ${_LIB_SEARCH_NAME}
|
||||
PATHS ${${pkg_name}_BASE_DIR}/${lib_path}
|
||||
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
|
||||
else()
|
||||
find_library(
|
||||
${_LIB_NAME}_LIB ${_LIB_SEARCH_NAME}
|
||||
PATHS ${${pkg_name}_BASE_DIR}/${lib_path}
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
if(NOT ${_LIB_NAME}_LIB)
|
||||
return()
|
||||
endif()
|
||||
|
||||
foreach(_LIB_NAME ${ARGN})
|
||||
set(_LIB_SEARCH_NAME ${_LIB_NAME})
|
||||
set(_LIB_TYPE SHARED)
|
||||
if(${pkg_name}_USE_STATIC_LIBS)
|
||||
set(_LIB_SEARCH_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}${_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(_LIB_TYPE STATIC)
|
||||
endif()
|
||||
set(${_LIB_NAME}_LIB ${_LIB_NAME}_LIB-NOTFOUND)
|
||||
if(APPLE)
|
||||
find_library(${_LIB_NAME}_LIB ${_LIB_SEARCH_NAME} PATHS ${${pkg_name}_BASE_DIR}/${lib_path}
|
||||
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
|
||||
else()
|
||||
find_library(${_LIB_NAME}_LIB ${_LIB_SEARCH_NAME} PATHS ${${pkg_name}_BASE_DIR}/${lib_path}
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
if(NOT ${_LIB_NAME}_LIB)
|
||||
return()
|
||||
endif()
|
||||
add_library(${pkg_name}::${_LIB_NAME} ${_LIB_TYPE} IMPORTED GLOBAL)
|
||||
if(WIN32 AND ${_LIB_TYPE} STREQUAL "SHARED")
|
||||
set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES IMPORTED_IMPLIB_RELEASE ${${_LIB_NAME}_LIB})
|
||||
else()
|
||||
set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES IMPORTED_LOCATION ${${_LIB_NAME}_LIB})
|
||||
endif()
|
||||
|
||||
add_library(${pkg_name}::${_LIB_NAME} ${_LIB_TYPE} IMPORTED GLOBAL)
|
||||
if(WIN32 AND ${_LIB_TYPE} STREQUAL "SHARED")
|
||||
set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES IMPORTED_IMPLIB_RELEASE ${${_LIB_NAME}_LIB})
|
||||
else()
|
||||
set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES IMPORTED_LOCATION ${${_LIB_NAME}_LIB})
|
||||
endif()
|
||||
if(EXISTS ${${pkg_name}_BASE_DIR}/include)
|
||||
set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
||||
"${${pkg_name}_BASE_DIR}/include")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${${pkg_name}_BASE_DIR}/include)
|
||||
set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${${pkg_name}_BASE_DIR}/include")
|
||||
endif()
|
||||
list(APPEND ${pkg_name}_LIBS ${pkg_name}::${_LIB_NAME})
|
||||
message("found ${${_LIB_NAME}_LIB}")
|
||||
string(REGEX REPLACE "(.+)/(.+)" "\\1" LIBPATH ${${_LIB_NAME}_LIB})
|
||||
set(${pkg_name}_LIBPATH
|
||||
${LIBPATH}
|
||||
CACHE STRING INTERNAL)
|
||||
endforeach()
|
||||
|
||||
list(APPEND ${pkg_name}_LIBS ${pkg_name}::${_LIB_NAME})
|
||||
message("found ${${_LIB_NAME}_LIB}")
|
||||
STRING(REGEX REPLACE "(.+)/(.+)" "\\1" LIBPATH ${${_LIB_NAME}_LIB})
|
||||
set(${pkg_name}_LIBPATH ${LIBPATH} CACHE STRING INTERNAL)
|
||||
endforeach()
|
||||
|
||||
set(${pkg_name}_LIBS ${${pkg_name}_LIBS} PARENT_SCOPE)
|
||||
set(${pkg_name}_LIBS
|
||||
${${pkg_name}_LIBS}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(__exec_cmd)
|
||||
set(options)
|
||||
set(oneValueArgs WORKING_DIRECTORY)
|
||||
set(multiValueArgs COMMAND)
|
||||
set(options)
|
||||
set(oneValueArgs WORKING_DIRECTORY)
|
||||
set(multiValueArgs COMMAND)
|
||||
|
||||
cmake_parse_arguments(EXEC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
cmake_parse_arguments(EXEC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
execute_process(COMMAND ${EXEC_COMMAND}
|
||||
WORKING_DIRECTORY ${EXEC_WORKING_DIRECTORY}
|
||||
RESULT_VARIABLE RESULT)
|
||||
if(NOT RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "error! when ${EXEC_COMMAND} in ${EXEC_WORKING_DIRECTORY}")
|
||||
endif()
|
||||
execute_process(
|
||||
COMMAND ${EXEC_COMMAND}
|
||||
WORKING_DIRECTORY ${EXEC_WORKING_DIRECTORY}
|
||||
RESULT_VARIABLE RESULT)
|
||||
if(NOT RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "error! when ${EXEC_COMMAND} in ${EXEC_WORKING_DIRECTORY}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(__check_patches pkg_patches)
|
||||
# check patches
|
||||
if(PKG_PATCHES)
|
||||
file(TOUCH ${_MS_LIB_CACHE}/${pkg_name}_patch.md5)
|
||||
file(READ ${_MS_LIB_CACHE}/${pkg_name}_patch.md5 ${pkg_name}_PATCHES_MD5)
|
||||
# check patches
|
||||
if(PKG_PATCHES)
|
||||
file(TOUCH ${_MS_LIB_CACHE}/${pkg_name}_patch.md5)
|
||||
file(READ ${_MS_LIB_CACHE}/${pkg_name}_patch.md5 ${pkg_name}_PATCHES_MD5)
|
||||
|
||||
message("patches md5:${${pkg_name}_PATCHES_MD5}")
|
||||
message("patches md5:${${pkg_name}_PATCHES_MD5}")
|
||||
|
||||
set(${pkg_name}_PATCHES_NEW_MD5)
|
||||
foreach(_PATCH ${PKG_PATCHES})
|
||||
file(MD5 ${_PATCH} _PF_MD5)
|
||||
set(${pkg_name}_PATCHES_NEW_MD5 "${${pkg_name}_PATCHES_NEW_MD5},${_PF_MD5}")
|
||||
endforeach()
|
||||
set(${pkg_name}_PATCHES_NEW_MD5)
|
||||
foreach(_PATCH ${PKG_PATCHES})
|
||||
file(MD5 ${_PATCH} _PF_MD5)
|
||||
set(${pkg_name}_PATCHES_NEW_MD5 "${${pkg_name}_PATCHES_NEW_MD5},${_PF_MD5}")
|
||||
endforeach()
|
||||
|
||||
if(NOT ${pkg_name}_PATCHES_MD5 STREQUAL ${pkg_name}_PATCHES_NEW_MD5)
|
||||
set(${pkg_name}_PATCHES ${PKG_PATCHES})
|
||||
file(REMOVE_RECURSE "${_MS_LIB_CACHE}/${pkg_name}-subbuild")
|
||||
file(WRITE ${_MS_LIB_CACHE}/${pkg_name}_patch.md5 ${${pkg_name}_PATCHES_NEW_MD5})
|
||||
message("patches changed : ${${pkg_name}_PATCHES_NEW_MD5}")
|
||||
endif()
|
||||
if(NOT ${pkg_name}_PATCHES_MD5 STREQUAL ${pkg_name}_PATCHES_NEW_MD5)
|
||||
set(${pkg_name}_PATCHES ${PKG_PATCHES})
|
||||
file(REMOVE_RECURSE "${_MS_LIB_CACHE}/${pkg_name}-subbuild")
|
||||
file(WRITE ${_MS_LIB_CACHE}/${pkg_name}_patch.md5 ${${pkg_name}_PATCHES_NEW_MD5})
|
||||
message("patches changed : ${${pkg_name}_PATCHES_NEW_MD5}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
set(MS_FIND_NO_DEFAULT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_BUILDS_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH
|
||||
NO_CMAKE_SYSTEM_PACKAGE_REGISTRY)
|
||||
set(MS_FIND_NO_DEFAULT_PATH ${MS_FIND_NO_DEFAULT_PATH} PARENT_SCOPE)
|
||||
# ~~~
|
||||
# Create target aliases based on a list of key-value pairs where:
|
||||
# - key: target alias name
|
||||
# - value: target to alias
|
||||
#
|
||||
# __create_target_aliases([[<tgt_alias>, <tgt_name>]...])
|
||||
# ~~~
|
||||
function(__create_target_aliases)
|
||||
list(LENGTH ARGN n_args)
|
||||
if(NOT n_args)
|
||||
return()
|
||||
endif()
|
||||
math(EXPR is_error_length "${n_args} % 2")
|
||||
if(is_error_length)
|
||||
message(FATAL_ERROR "Invalid number of arguments (key-value pairs)")
|
||||
endif()
|
||||
|
||||
math(EXPR stop "${n_args} - 1")
|
||||
foreach(idx RANGE 0 ${stop} 2)
|
||||
math(EXPR idx_1 "${idx} + 1")
|
||||
list(GET ARGN ${idx} tgt_alias)
|
||||
list(GET ARGN ${idx_1} tgt_name)
|
||||
|
||||
if(NOT TARGET ${tgt_name})
|
||||
message(FATAL_ERROR "Target ${tgt_name} cannot be found!")
|
||||
endif()
|
||||
|
||||
get_target_property(_aliased ${tgt_name} ALIASED_TARGET)
|
||||
if(_aliased)
|
||||
set(tgt_name ${_aliased})
|
||||
endif()
|
||||
|
||||
get_target_property(_imported ${tgt_name} IMPORTED)
|
||||
get_target_property(_imported_global ${tgt_name} IMPORTED_GLOBAL)
|
||||
if(_imported AND NOT _imported_global)
|
||||
set_property(TARGET ${tgt_name} PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
endif()
|
||||
|
||||
get_target_property(_type ${tgt_name} TYPE)
|
||||
if(_type STREQUAL "EXECUTABLE")
|
||||
message(STATUS "add_executable(${tgt_alias} ALIAS ${tgt_name})")
|
||||
add_executable(${tgt_alias} ALIAS ${tgt_name})
|
||||
else()
|
||||
message(STATUS "add_library(${tgt_alias} ALIAS ${tgt_name})")
|
||||
add_library(${tgt_alias} ALIAS ${tgt_name})
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
set(MS_FIND_NO_DEFAULT_PATH
|
||||
NO_CMAKE_PATH
|
||||
NO_CMAKE_ENVIRONMENT_PATH
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_BUILDS_PATH
|
||||
NO_CMAKE_PACKAGE_REGISTRY
|
||||
NO_CMAKE_SYSTEM_PATH
|
||||
NO_CMAKE_SYSTEM_PACKAGE_REGISTRY)
|
||||
set(MS_FIND_NO_DEFAULT_PATH
|
||||
${MS_FIND_NO_DEFAULT_PATH}
|
||||
PARENT_SCOPE)
|
||||
function(mindspore_add_pkg pkg_name)
|
||||
set(options)
|
||||
set(oneValueArgs
|
||||
URL
|
||||
MD5
|
||||
GIT_REPOSITORY
|
||||
GIT_TAG
|
||||
VER
|
||||
EXE
|
||||
DIR
|
||||
HEAD_ONLY
|
||||
CMAKE_PATH
|
||||
RELEASE
|
||||
LIB_PATH
|
||||
CUSTOM_CMAKE)
|
||||
set(multiValueArgs
|
||||
CMAKE_OPTION
|
||||
LIBS
|
||||
PRE_CONFIGURE_COMMAND
|
||||
CONFIGURE_COMMAND
|
||||
BUILD_OPTION
|
||||
INSTALL_INCS
|
||||
INSTALL_LIBS
|
||||
PATCHES
|
||||
SUBMODULES
|
||||
SOURCEMODULES
|
||||
ONLY_MAKE
|
||||
ONLY_MAKE_INCS
|
||||
ONLY_MAKE_LIBS
|
||||
TARGET_ALIAS)
|
||||
cmake_parse_arguments(PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
set(options)
|
||||
set(oneValueArgs URL MD5 GIT_REPOSITORY GIT_TAG VER EXE DIR HEAD_ONLY CMAKE_PATH RELEASE LIB_PATH CUSTOM_CMAKE)
|
||||
set(multiValueArgs
|
||||
CMAKE_OPTION LIBS PRE_CONFIGURE_COMMAND CONFIGURE_COMMAND BUILD_OPTION INSTALL_INCS
|
||||
INSTALL_LIBS PATCHES SUBMODULES SOURCEMODULES ONLY_MAKE ONLY_MAKE_INCS ONLY_MAKE_LIBS)
|
||||
cmake_parse_arguments(PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT PKG_LIB_PATH)
|
||||
set(PKG_LIB_PATH lib)
|
||||
endif()
|
||||
|
||||
if(NOT PKG_LIB_PATH)
|
||||
set(PKG_LIB_PATH lib)
|
||||
endif()
|
||||
if(NOT PKG_EXE)
|
||||
set(PKG_EXE 0)
|
||||
endif()
|
||||
|
||||
if(NOT PKG_EXE)
|
||||
set(PKG_EXE 0)
|
||||
endif()
|
||||
set(__FIND_PKG_NAME ${pkg_name})
|
||||
string(TOUPPER ${pkg_name} PKG_NAME)
|
||||
string(TOLOWER ${pkg_name} pkg_name)
|
||||
message(CHECK_START "Looking for ${__FIND_PKG_NAME},${pkg_name}")
|
||||
|
||||
set(__FIND_PKG_NAME ${pkg_name})
|
||||
string(TOLOWER ${pkg_name} pkg_name)
|
||||
message("pkg name:${__FIND_PKG_NAME},${pkg_name}")
|
||||
if(MS_PREFER_LOCAL_PKG OR MS_${PKG_NAME}_PREFER_LOCAL)
|
||||
# Prefer system installed libraries instead of compiling everything from source
|
||||
|
||||
set(${pkg_name}_PATCHES_HASH)
|
||||
foreach(_PATCH ${PKG_PATCHES})
|
||||
file(MD5 ${_PATCH} _PF_MD5)
|
||||
set(${pkg_name}_PATCHES_HASH "${${pkg_name}_PATCHES_HASH},${_PF_MD5}")
|
||||
endforeach()
|
||||
# TODO(dnguyen): Is this really required?
|
||||
|
||||
# check options
|
||||
set(${pkg_name}_CONFIG_TXT
|
||||
"${CMAKE_CXX_COMPILER_VERSION}-${CMAKE_C_COMPILER_VERSION}
|
||||
"${CMAKE_CXX_COMPILER_VERSION}-${CMAKE_C_COMPILER_VERSION}
|
||||
${ARGN} - ${${pkg_name}_USE_STATIC_LIBS}- ${${pkg_name}_PATCHES_HASH}
|
||||
${${pkg_name}_CXXFLAGS}--${${pkg_name}_CFLAGS}--${${pkg_name}_LDFLAGS}")
|
||||
string(REPLACE ";" "-" ${pkg_name}_CONFIG_TXT ${${pkg_name}_CONFIG_TXT})
|
||||
string(MD5 ${pkg_name}_CONFIG_HASH ${${pkg_name}_CONFIG_TXT})
|
||||
|
||||
message("${pkg_name} config hash: ${${pkg_name}_CONFIG_HASH}")
|
||||
if(PKG_HEAD_ONLY)
|
||||
# ~~~
|
||||
# 1. Find package using CMake discovery
|
||||
# 2. Set target aliases
|
||||
# ~~~
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY}
|
||||
PARENT_SCOPE)
|
||||
add_library(${pkg_name} INTERFACE)
|
||||
target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC})
|
||||
if(${PKG_RELEASE})
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
endif()
|
||||
else()
|
||||
file(WRITE ${${pkg_name}_BASE_DIR}/options.txt ${${pkg_name}_CONFIG_TXT})
|
||||
message("${pkg_name}_SOURCE_DIR : ${${pkg_name}_SOURCE_DIR}")
|
||||
endif()
|
||||
|
||||
set(${pkg_name}_BASE_DIR ${_MS_LIB_CACHE}/${pkg_name}_${PKG_VER}_${${pkg_name}_CONFIG_HASH})
|
||||
set(${pkg_name}_DIRPATH ${${pkg_name}_BASE_DIR} CACHE STRING INTERNAL)
|
||||
__create_target_aliases(${PKG_TARGET_ALIAS})
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(EXISTS ${${pkg_name}_BASE_DIR}/options.txt AND PKG_HEAD_ONLY)
|
||||
set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY} PARENT_SCOPE)
|
||||
# ==============================================================================
|
||||
# Ignore system installed libraries and compile a local version instead
|
||||
|
||||
set(${pkg_name}_PATCHES_HASH)
|
||||
foreach(_PATCH ${PKG_PATCHES})
|
||||
file(MD5 ${_PATCH} _PF_MD5)
|
||||
set(${pkg_name}_PATCHES_HASH "${${pkg_name}_PATCHES_HASH},${_PF_MD5}")
|
||||
endforeach()
|
||||
|
||||
# check options
|
||||
set(${pkg_name}_CONFIG_TXT
|
||||
"${CMAKE_CXX_COMPILER_VERSION}-${CMAKE_C_COMPILER_VERSION}
|
||||
${ARGN} - ${${pkg_name}_USE_STATIC_LIBS}- ${${pkg_name}_PATCHES_HASH}
|
||||
${${pkg_name}_CXXFLAGS}--${${pkg_name}_CFLAGS}--${${pkg_name}_LDFLAGS}")
|
||||
string(REPLACE ";" "-" ${pkg_name}_CONFIG_TXT ${${pkg_name}_CONFIG_TXT})
|
||||
string(MD5 ${pkg_name}_CONFIG_HASH ${${pkg_name}_CONFIG_TXT})
|
||||
|
||||
message(STATUS "${pkg_name} config hash: ${${pkg_name}_CONFIG_HASH}")
|
||||
|
||||
set(${pkg_name}_BASE_DIR ${_MS_LIB_CACHE}/${pkg_name}_${PKG_VER}_${${pkg_name}_CONFIG_HASH})
|
||||
set(${pkg_name}_DIRPATH
|
||||
${${pkg_name}_BASE_DIR}
|
||||
CACHE STRING INTERNAL)
|
||||
|
||||
if(EXISTS ${${pkg_name}_BASE_DIR}/options.txt AND PKG_HEAD_ONLY)
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY}
|
||||
PARENT_SCOPE)
|
||||
add_library(${pkg_name} INTERFACE)
|
||||
target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC})
|
||||
if(${PKG_RELEASE})
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
endif()
|
||||
__create_target_aliases(${PKG_TARGET_ALIAS})
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(${__FIND_PKG_NAME}_ROOT ${${pkg_name}_BASE_DIR})
|
||||
set(${__FIND_PKG_NAME}_ROOT
|
||||
${${pkg_name}_BASE_DIR}
|
||||
PARENT_SCOPE)
|
||||
|
||||
if(PKG_LIBS)
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
if(${pkg_name}_LIBS)
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/include
|
||||
PARENT_SCOPE)
|
||||
message("Found libs: ${${pkg_name}_LIBS}")
|
||||
__create_target_aliases(${PKG_TARGET_ALIAS})
|
||||
return()
|
||||
endif()
|
||||
elseif(NOT PKG_HEAD_ONLY)
|
||||
find_package(${__FIND_PKG_NAME} ${PKG_VER} ${MS_FIND_NO_DEFAULT_PATH})
|
||||
if(${__FIND_PKG_NAME}_FOUND)
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/include
|
||||
PARENT_SCOPE)
|
||||
message("Found pkg: ${__FIND_PKG_NAME}")
|
||||
__create_target_aliases(${PKG_TARGET_ALIAS})
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT PKG_DIR)
|
||||
if(PKG_GIT_REPOSITORY)
|
||||
__download_pkg_with_git(${pkg_name} ${PKG_GIT_REPOSITORY} ${PKG_GIT_TAG} ${PKG_MD5})
|
||||
else()
|
||||
__download_pkg(${pkg_name} ${PKG_URL} ${PKG_MD5})
|
||||
endif()
|
||||
foreach(_SUBMODULE_FILE ${PKG_SUBMODULES})
|
||||
string(REGEX REPLACE "(.+)_(.+)" "\\1" _SUBMODEPATH ${_SUBMODULE_FILE})
|
||||
string(REGEX REPLACE "(.+)/(.+)" "\\2" _SUBMODENAME ${_SUBMODEPATH})
|
||||
file(GLOB ${pkg_name}_INSTALL_SUBMODULE ${_SUBMODULE_FILE}/*)
|
||||
file(COPY ${${pkg_name}_INSTALL_SUBMODULE} DESTINATION ${${pkg_name}_SOURCE_DIR}/3rdparty/${_SUBMODENAME})
|
||||
endforeach()
|
||||
else()
|
||||
set(${pkg_name}_SOURCE_DIR ${PKG_DIR})
|
||||
endif()
|
||||
file(WRITE ${${pkg_name}_BASE_DIR}/options.txt ${${pkg_name}_CONFIG_TXT})
|
||||
message("${pkg_name}_SOURCE_DIR : ${${pkg_name}_SOURCE_DIR}")
|
||||
|
||||
foreach(_PATCH_FILE ${PKG_PATCHES})
|
||||
get_filename_component(_PATCH_FILE_NAME ${_PATCH_FILE} NAME)
|
||||
set(_LF_PATCH_FILE ${CMAKE_BINARY_DIR}/_ms_patch/${_PATCH_FILE_NAME})
|
||||
configure_file(
|
||||
${_PATCH_FILE} ${_LF_PATCH_FILE}
|
||||
NEWLINE_STYLE LF
|
||||
@ONLY)
|
||||
|
||||
message("patching ${${pkg_name}_SOURCE_DIR} -p1 < ${_LF_PATCH_FILE}")
|
||||
execute_process(
|
||||
COMMAND ${Patch_EXECUTABLE} -p1
|
||||
INPUT_FILE ${_LF_PATCH_FILE}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}
|
||||
RESULT_VARIABLE Result)
|
||||
if(NOT Result EQUAL "0")
|
||||
message(FATAL_ERROR "Failed patch: ${_LF_PATCH_FILE}")
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(_SOURCE_DIR ${PKG_SOURCEMODULES})
|
||||
file(GLOB ${pkg_name}_INSTALL_SOURCE ${${pkg_name}_SOURCE_DIR}/${_SOURCE_DIR}/*)
|
||||
file(COPY ${${pkg_name}_INSTALL_SOURCE} DESTINATION ${${pkg_name}_BASE_DIR}/${_SOURCE_DIR}/)
|
||||
endforeach()
|
||||
file(
|
||||
LOCK ${${pkg_name}_BASE_DIR} DIRECTORY
|
||||
GUARD FUNCTION
|
||||
RESULT_VARIABLE ${pkg_name}_LOCK_RET
|
||||
TIMEOUT 600)
|
||||
if(NOT ${pkg_name}_LOCK_RET EQUAL "0")
|
||||
message(FATAL_ERROR "error! when try lock ${${pkg_name}_BASE_DIR} : ${${pkg_name}_LOCK_RET}")
|
||||
endif()
|
||||
|
||||
if(PKG_CUSTOM_CMAKE)
|
||||
file(GLOB ${pkg_name}_cmake ${PKG_CUSTOM_CMAKE}/CMakeLists.txt)
|
||||
file(COPY ${${pkg_name}_cmake} DESTINATION ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(${pkg_name}_SOURCE_DIR)
|
||||
if(PKG_HEAD_ONLY)
|
||||
file(GLOB ${pkg_name}_SOURCE_SUBDIRS ${${pkg_name}_SOURCE_DIR}/*)
|
||||
file(COPY ${${pkg_name}_SOURCE_SUBDIRS} DESTINATION ${${pkg_name}_BASE_DIR})
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY}
|
||||
PARENT_SCOPE)
|
||||
if(NOT PKG_RELEASE)
|
||||
add_library(${pkg_name} INTERFACE)
|
||||
target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC})
|
||||
if(${PKG_RELEASE})
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(${__FIND_PKG_NAME}_ROOT ${${pkg_name}_BASE_DIR})
|
||||
set(${__FIND_PKG_NAME}_ROOT ${${pkg_name}_BASE_DIR} PARENT_SCOPE)
|
||||
elseif(PKG_ONLY_MAKE)
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_CXXFLAGS} -j${THNUM} WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR})
|
||||
set(PKG_INSTALL_INCS ${PKG_ONLY_MAKE_INCS})
|
||||
set(PKG_INSTALL_LIBS ${PKG_ONLY_MAKE_LIBS})
|
||||
file(GLOB ${pkg_name}_INSTALL_INCS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_INCS})
|
||||
file(GLOB ${pkg_name}_INSTALL_LIBS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_LIBS})
|
||||
file(COPY ${${pkg_name}_INSTALL_INCS} DESTINATION ${${pkg_name}_BASE_DIR}/include)
|
||||
file(COPY ${${pkg_name}_INSTALL_LIBS} DESTINATION ${${pkg_name}_BASE_DIR}/lib)
|
||||
|
||||
if(PKG_LIBS)
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
if(${pkg_name}_LIBS)
|
||||
set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE)
|
||||
message("Found libs: ${${pkg_name}_LIBS}")
|
||||
return()
|
||||
endif()
|
||||
elseif(NOT PKG_HEAD_ONLY)
|
||||
find_package(${__FIND_PKG_NAME} ${PKG_VER} ${MS_FIND_NO_DEFAULT_PATH})
|
||||
if(${__FIND_PKG_NAME}_FOUND)
|
||||
set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE)
|
||||
message("Found pkg: ${__FIND_PKG_NAME}")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
elseif(PKG_CMAKE_OPTION)
|
||||
# in cmake
|
||||
file(MAKE_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build)
|
||||
if(${pkg_name}_CFLAGS)
|
||||
set(${pkg_name}_CMAKE_CFLAGS "-DCMAKE_C_FLAGS=${${pkg_name}_CFLAGS}")
|
||||
endif()
|
||||
if(${pkg_name}_CXXFLAGS)
|
||||
set(${pkg_name}_CMAKE_CXXFLAGS "-DCMAKE_CXX_FLAGS=${${pkg_name}_CXXFLAGS}")
|
||||
endif()
|
||||
|
||||
if(NOT PKG_DIR)
|
||||
if(PKG_GIT_REPOSITORY)
|
||||
__download_pkg_with_git(${pkg_name} ${PKG_GIT_REPOSITORY} ${PKG_GIT_TAG} ${PKG_MD5})
|
||||
if(${pkg_name}_LDFLAGS)
|
||||
if(${pkg_name}_USE_STATIC_LIBS)
|
||||
# set(${pkg_name}_CMAKE_LDFLAGS "-DCMAKE_STATIC_LINKER_FLAGS=${${pkg_name}_LDFLAGS}")
|
||||
else()
|
||||
__download_pkg(${pkg_name} ${PKG_URL} ${PKG_MD5})
|
||||
set(${pkg_name}_CMAKE_LDFLAGS "-DCMAKE_SHARED_LINKER_FLAGS=${${pkg_name}_LDFLAGS}")
|
||||
endif()
|
||||
foreach(_SUBMODULE_FILE ${PKG_SUBMODULES})
|
||||
STRING(REGEX REPLACE "(.+)_(.+)" "\\1" _SUBMODEPATH ${_SUBMODULE_FILE})
|
||||
STRING(REGEX REPLACE "(.+)/(.+)" "\\2" _SUBMODENAME ${_SUBMODEPATH})
|
||||
file(GLOB ${pkg_name}_INSTALL_SUBMODULE ${_SUBMODULE_FILE}/*)
|
||||
file(COPY ${${pkg_name}_INSTALL_SUBMODULE} DESTINATION ${${pkg_name}_SOURCE_DIR}/3rdparty/${_SUBMODENAME})
|
||||
endforeach()
|
||||
endif()
|
||||
if(APPLE)
|
||||
__exec_cmd(
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
${PKG_CMAKE_OPTION}
|
||||
${${pkg_name}_CMAKE_CFLAGS}
|
||||
${${pkg_name}_CMAKE_CXXFLAGS}
|
||||
${${pkg_name}_CMAKE_LDFLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${${pkg_name}_BASE_DIR}
|
||||
${${pkg_name}_SOURCE_DIR}/${PKG_CMAKE_PATH}
|
||||
WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR}/_build)
|
||||
__exec_cmd(
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
--build
|
||||
.
|
||||
--target
|
||||
install
|
||||
--
|
||||
WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR}/_build)
|
||||
else()
|
||||
__exec_cmd(
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
${PKG_CMAKE_OPTION}
|
||||
-G
|
||||
${CMAKE_GENERATOR}
|
||||
${${pkg_name}_CMAKE_CFLAGS}
|
||||
${${pkg_name}_CMAKE_CXXFLAGS}
|
||||
${${pkg_name}_CMAKE_LDFLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${${pkg_name}_BASE_DIR}
|
||||
${${pkg_name}_SOURCE_DIR}/${PKG_CMAKE_PATH}
|
||||
WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR}/_build)
|
||||
__exec_cmd(
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
--build
|
||||
.
|
||||
--target
|
||||
install
|
||||
--
|
||||
-j${THNUM}
|
||||
WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR}/_build)
|
||||
endif()
|
||||
else()
|
||||
set(${pkg_name}_SOURCE_DIR ${PKG_DIR})
|
||||
if(${pkg_name}_CFLAGS)
|
||||
set(${pkg_name}_MAKE_CFLAGS "CFLAGS=${${pkg_name}_CFLAGS}")
|
||||
endif()
|
||||
if(${pkg_name}_CXXFLAGS)
|
||||
set(${pkg_name}_MAKE_CXXFLAGS "CXXFLAGS=${${pkg_name}_CXXFLAGS}")
|
||||
endif()
|
||||
if(${pkg_name}_LDFLAGS)
|
||||
set(${pkg_name}_MAKE_LDFLAGS "LDFLAGS=${${pkg_name}_LDFLAGS}")
|
||||
endif()
|
||||
# in configure && make
|
||||
if(PKG_PRE_CONFIGURE_COMMAND)
|
||||
__exec_cmd(COMMAND ${PKG_PRE_CONFIGURE_COMMAND} WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(PKG_CONFIGURE_COMMAND)
|
||||
__exec_cmd(
|
||||
COMMAND
|
||||
${PKG_CONFIGURE_COMMAND}
|
||||
${${pkg_name}_MAKE_CFLAGS}
|
||||
${${pkg_name}_MAKE_CXXFLAGS}
|
||||
${${pkg_name}_MAKE_LDFLAGS}
|
||||
--prefix=${${pkg_name}_BASE_DIR}
|
||||
WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
set(${pkg_name}_BUILD_OPTION ${PKG_BUILD_OPTION})
|
||||
if(NOT PKG_CONFIGURE_COMMAND)
|
||||
set(${pkg_name}_BUILD_OPTION ${${pkg_name}_BUILD_OPTION} ${${pkg_name}_MAKE_CFLAGS}
|
||||
${${pkg_name}_MAKE_CXXFLAGS} ${${pkg_name}_MAKE_LDFLAGS})
|
||||
endif()
|
||||
# build
|
||||
if(APPLE)
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION} WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR})
|
||||
else()
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION} -j${THNUM} WORKING_DIRECTORY
|
||||
${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(PKG_INSTALL_INCS OR PKG_INSTALL_LIBS)
|
||||
file(GLOB ${pkg_name}_INSTALL_INCS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_INCS})
|
||||
file(GLOB ${pkg_name}_INSTALL_LIBS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_LIBS})
|
||||
file(COPY ${${pkg_name}_INSTALL_INCS} DESTINATION ${${pkg_name}_BASE_DIR}/include)
|
||||
file(COPY ${${pkg_name}_INSTALL_LIBS} DESTINATION ${${pkg_name}_BASE_DIR}/lib)
|
||||
else()
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} install WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
endif()
|
||||
file(WRITE ${${pkg_name}_BASE_DIR}/options.txt ${${pkg_name}_CONFIG_TXT})
|
||||
message("${pkg_name}_SOURCE_DIR : ${${pkg_name}_SOURCE_DIR}")
|
||||
endif()
|
||||
|
||||
foreach(_PATCH_FILE ${PKG_PATCHES})
|
||||
get_filename_component(_PATCH_FILE_NAME ${_PATCH_FILE} NAME)
|
||||
set(_LF_PATCH_FILE ${CMAKE_BINARY_DIR}/_ms_patch/${_PATCH_FILE_NAME})
|
||||
configure_file(${_PATCH_FILE} ${_LF_PATCH_FILE} NEWLINE_STYLE LF @ONLY)
|
||||
|
||||
message("patching ${${pkg_name}_SOURCE_DIR} -p1 < ${_LF_PATCH_FILE}")
|
||||
execute_process(COMMAND ${Patch_EXECUTABLE} -p1 INPUT_FILE ${_LF_PATCH_FILE}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}
|
||||
RESULT_VARIABLE Result)
|
||||
if(NOT Result EQUAL "0")
|
||||
message(FATAL_ERROR "Failed patch: ${_LF_PATCH_FILE}")
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(_SOURCE_DIR ${PKG_SOURCEMODULES})
|
||||
file(GLOB ${pkg_name}_INSTALL_SOURCE ${${pkg_name}_SOURCE_DIR}/${_SOURCE_DIR}/*)
|
||||
file(COPY ${${pkg_name}_INSTALL_SOURCE} DESTINATION ${${pkg_name}_BASE_DIR}/${_SOURCE_DIR}/)
|
||||
endforeach()
|
||||
file(LOCK ${${pkg_name}_BASE_DIR} DIRECTORY GUARD FUNCTION RESULT_VARIABLE ${pkg_name}_LOCK_RET TIMEOUT 600)
|
||||
if(NOT ${pkg_name}_LOCK_RET EQUAL "0")
|
||||
message(FATAL_ERROR "error! when try lock ${${pkg_name}_BASE_DIR} : ${${pkg_name}_LOCK_RET}")
|
||||
if(PKG_LIBS)
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/include
|
||||
PARENT_SCOPE)
|
||||
if(NOT ${pkg_name}_LIBS)
|
||||
message(FATAL_ERROR "Can not find pkg: ${pkg_name}")
|
||||
endif()
|
||||
|
||||
if(PKG_CUSTOM_CMAKE)
|
||||
file(GLOB ${pkg_name}_cmake ${PKG_CUSTOM_CMAKE}/CMakeLists.txt)
|
||||
file(COPY ${${pkg_name}_cmake} DESTINATION ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(${pkg_name}_SOURCE_DIR)
|
||||
if(PKG_HEAD_ONLY)
|
||||
file(GLOB ${pkg_name}_SOURCE_SUBDIRS ${${pkg_name}_SOURCE_DIR}/*)
|
||||
file(COPY ${${pkg_name}_SOURCE_SUBDIRS} DESTINATION ${${pkg_name}_BASE_DIR})
|
||||
set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY} PARENT_SCOPE)
|
||||
if(NOT PKG_RELEASE)
|
||||
add_library(${pkg_name} INTERFACE)
|
||||
target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC})
|
||||
endif()
|
||||
|
||||
elseif(PKG_ONLY_MAKE)
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_CXXFLAGS} -j${THNUM}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
set(PKG_INSTALL_INCS ${PKG_ONLY_MAKE_INCS})
|
||||
set(PKG_INSTALL_LIBS ${PKG_ONLY_MAKE_LIBS})
|
||||
file(GLOB ${pkg_name}_INSTALL_INCS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_INCS})
|
||||
file(GLOB ${pkg_name}_INSTALL_LIBS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_LIBS})
|
||||
file(COPY ${${pkg_name}_INSTALL_INCS} DESTINATION ${${pkg_name}_BASE_DIR}/include)
|
||||
file(COPY ${${pkg_name}_INSTALL_LIBS} DESTINATION ${${pkg_name}_BASE_DIR}/lib)
|
||||
|
||||
elseif(PKG_CMAKE_OPTION)
|
||||
# in cmake
|
||||
file(MAKE_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build)
|
||||
if(${pkg_name}_CFLAGS)
|
||||
set(${pkg_name}_CMAKE_CFLAGS "-DCMAKE_C_FLAGS=${${pkg_name}_CFLAGS}")
|
||||
endif()
|
||||
if(${pkg_name}_CXXFLAGS)
|
||||
set(${pkg_name}_CMAKE_CXXFLAGS "-DCMAKE_CXX_FLAGS=${${pkg_name}_CXXFLAGS}")
|
||||
endif()
|
||||
|
||||
if(${pkg_name}_LDFLAGS)
|
||||
if(${pkg_name}_USE_STATIC_LIBS)
|
||||
#set(${pkg_name}_CMAKE_LDFLAGS "-DCMAKE_STATIC_LINKER_FLAGS=${${pkg_name}_LDFLAGS}")
|
||||
else()
|
||||
set(${pkg_name}_CMAKE_LDFLAGS "-DCMAKE_SHARED_LINKER_FLAGS=${${pkg_name}_LDFLAGS}")
|
||||
endif()
|
||||
endif()
|
||||
if(APPLE)
|
||||
__exec_cmd(COMMAND ${CMAKE_COMMAND} ${PKG_CMAKE_OPTION}
|
||||
${${pkg_name}_CMAKE_CFLAGS} ${${pkg_name}_CMAKE_CXXFLAGS} ${${pkg_name}_CMAKE_LDFLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${${pkg_name}_BASE_DIR} ${${pkg_name}_SOURCE_DIR}/${PKG_CMAKE_PATH}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build)
|
||||
__exec_cmd(COMMAND ${CMAKE_COMMAND} --build . --target install --
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build)
|
||||
else()
|
||||
__exec_cmd(COMMAND ${CMAKE_COMMAND} ${PKG_CMAKE_OPTION} -G ${CMAKE_GENERATOR}
|
||||
${${pkg_name}_CMAKE_CFLAGS} ${${pkg_name}_CMAKE_CXXFLAGS} ${${pkg_name}_CMAKE_LDFLAGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${${pkg_name}_BASE_DIR} ${${pkg_name}_SOURCE_DIR}/${PKG_CMAKE_PATH}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build)
|
||||
__exec_cmd(COMMAND ${CMAKE_COMMAND} --build . --target install -- -j${THNUM}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build)
|
||||
endif()
|
||||
else()
|
||||
if(${pkg_name}_CFLAGS)
|
||||
set(${pkg_name}_MAKE_CFLAGS "CFLAGS=${${pkg_name}_CFLAGS}")
|
||||
endif()
|
||||
if(${pkg_name}_CXXFLAGS)
|
||||
set(${pkg_name}_MAKE_CXXFLAGS "CXXFLAGS=${${pkg_name}_CXXFLAGS}")
|
||||
endif()
|
||||
if(${pkg_name}_LDFLAGS)
|
||||
set(${pkg_name}_MAKE_LDFLAGS "LDFLAGS=${${pkg_name}_LDFLAGS}")
|
||||
endif()
|
||||
# in configure && make
|
||||
if(PKG_PRE_CONFIGURE_COMMAND)
|
||||
__exec_cmd(COMMAND ${PKG_PRE_CONFIGURE_COMMAND}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(PKG_CONFIGURE_COMMAND)
|
||||
__exec_cmd(COMMAND ${PKG_CONFIGURE_COMMAND}
|
||||
${${pkg_name}_MAKE_CFLAGS} ${${pkg_name}_MAKE_CXXFLAGS} ${${pkg_name}_MAKE_LDFLAGS}
|
||||
--prefix=${${pkg_name}_BASE_DIR}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
set(${pkg_name}_BUILD_OPTION ${PKG_BUILD_OPTION})
|
||||
if(NOT PKG_CONFIGURE_COMMAND)
|
||||
set(${pkg_name}_BUILD_OPTION ${${pkg_name}_BUILD_OPTION}
|
||||
${${pkg_name}_MAKE_CFLAGS} ${${pkg_name}_MAKE_CXXFLAGS} ${${pkg_name}_MAKE_LDFLAGS})
|
||||
endif()
|
||||
# build
|
||||
if(APPLE)
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
else()
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION} -j${THNUM}
|
||||
WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(PKG_INSTALL_INCS OR PKG_INSTALL_LIBS)
|
||||
file(GLOB ${pkg_name}_INSTALL_INCS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_INCS})
|
||||
file(GLOB ${pkg_name}_INSTALL_LIBS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_LIBS})
|
||||
file(COPY ${${pkg_name}_INSTALL_INCS} DESTINATION ${${pkg_name}_BASE_DIR}/include)
|
||||
file(COPY ${${pkg_name}_INSTALL_LIBS} DESTINATION ${${pkg_name}_BASE_DIR}/lib)
|
||||
else()
|
||||
__exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} install WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(PKG_LIBS)
|
||||
__find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS})
|
||||
set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE)
|
||||
if(NOT ${pkg_name}_LIBS)
|
||||
message(FATAL_ERROR "Can not find pkg: ${pkg_name}")
|
||||
endif()
|
||||
else()
|
||||
find_package(${__FIND_PKG_NAME} ${PKG_VER} QUIET ${MS_FIND_NO_DEFAULT_PATH})
|
||||
if(${__FIND_PKG_NAME}_FOUND)
|
||||
set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE)
|
||||
message("Found pkg: ${${__FIND_PKG_NAME}_LIBRARIES}")
|
||||
return()
|
||||
endif()
|
||||
else()
|
||||
find_package(${__FIND_PKG_NAME} ${PKG_VER} QUIET ${MS_FIND_NO_DEFAULT_PATH})
|
||||
if(${__FIND_PKG_NAME}_FOUND)
|
||||
set(${pkg_name}_INC
|
||||
${${pkg_name}_BASE_DIR}/include
|
||||
PARENT_SCOPE)
|
||||
message("Found pkg: ${${__FIND_PKG_NAME}_LIBRARIES}")
|
||||
__create_target_aliases(${PKG_TARGET_ALIAS})
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
__create_target_aliases(${PKG_TARGET_ALIAS})
|
||||
endfunction()
|
||||
|
|
|
|||
Loading…
Reference in New Issue