CMakeLists.txt 3.1 KB
Newer Older
Y
Yan Chunwei 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# Copyright (c) 2017 VisualDL Authors. All Rights Reserve.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License

S
superjom 已提交
15
add_library(im ${PROJECT_SOURCE_DIR}/visualdl/logic/im.cc)
16
add_library(sdk ${PROJECT_SOURCE_DIR}/visualdl/logic/sdk.cc ${PROJECT_SOURCE_DIR}/visualdl/utils/image.h)
S
superjom 已提交
17
add_dependencies(im storage_proto)
T
Thuan Nguyen 已提交
18
add_dependencies(sdk entry binary_record storage storage_proto eigen3)
Q
Qiao Longfei 已提交
19 20

## pybind
Q
Qiao Longfei 已提交
21 22
set(OPTIONAL_LINK_FLAGS)

23
if((NOT APPLE) AND (NOT WIN32))
Q
Qiao Longfei 已提交
24 25 26
  set(OPTIONAL_LINK_FLAGS "rt")
endif()

S
superjom 已提交
27
add_library(core SHARED ${PROJECT_SOURCE_DIR}/visualdl/logic/pybind.cc)
Q
Qiao Longfei 已提交
28

N
Nicky Chan 已提交
29 30
## do not link python library and let system auto resolve to avoid different python lib conflict

Q
Qiao Longfei 已提交
31
if (NOT ON_RELEASE)
N
Nicky Chan 已提交
32 33
  add_dependencies(core pybind im entry tablet storage sdk protobuf glog eigen3)
  target_link_libraries(core PRIVATE pybind entry binary_record im tablet storage sdk protobuf glog ${OPTIONAL_LINK_FLAGS})
Q
Qiao Longfei 已提交
34
else()
N
Nicky Chan 已提交
35 36 37 38 39 40 41
  add_dependencies(core pybind im entry tablet storage sdk protobuf eigen3)
  target_link_libraries(core PRIVATE pybind entry binary_record im tablet storage sdk protobuf ${OPTIONAL_LINK_FLAGS})
endif()

## MacOS needs this flag to import python lib
if (APPLE)
  set_target_properties(core PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
Q
Qiao Longfei 已提交
42
endif()
43

44
if (MSVC)
O
Oraoto 已提交
45 46 47
  ## On Windows, we still link againt python library
  target_link_libraries(core PRIVATE python)
  ## Name the libraries as *.pyd
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
  set_target_properties(core PROPERTIES PREFIX "" SUFFIX ".pyd")
  add_custom_command(TARGET core POST_BUILD
    COMMAND "${CMAKE_COMMAND}" -E copy
      "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/core.pyd"
      "${VISUALDL_SOURCE_DIR}/visualdl/python/"
    COMMAND "${CMAKE_COMMAND}" -E copy
      "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/core.pyd"
      "${VISUALDL_SOURCE_DIR}/visualdl/"
    COMMAND "${CMAKE_COMMAND}" -E copy
      "${THIRD_PARTY_PATH}/install/protobuf/bin/libprotobuf.dll"
      "${VISUALDL_SOURCE_DIR}/visualdl/python/"
    COMMAND "${CMAKE_COMMAND}" -E copy
      "${THIRD_PARTY_PATH}/install/protobuf/bin/libprotobuf.dll"
      "${VISUALDL_SOURCE_DIR}/visualdl/"
    COMMENT "Copying core.pyd and libprotobuf.dll to ${VISUALDL_SOURCE_DIR}/visualdl/python/")
else()
  set_target_properties(core PROPERTIES PREFIX "" SUFFIX ".so")
  add_custom_command(TARGET core POST_BUILD
    COMMAND "${CMAKE_COMMAND}" -E copy
      "${CMAKE_CURRENT_BINARY_DIR}/core.so"
      "${VISUALDL_SOURCE_DIR}/visualdl/python/"
    COMMAND "${CMAKE_COMMAND}" -E copy
      "${CMAKE_CURRENT_BINARY_DIR}/core.so"
      "${VISUALDL_SOURCE_DIR}/visualdl/"
    COMMENT "Copying core.so to ${VISUALDL_SOURCE_DIR}/visualdl/python/")
endif()