Merge pull request #398 from ambasta/master
Improvements to CMake Build Structure
This commit is contained in:
@@ -4,57 +4,79 @@ PROJECT(ortools LANGUAGES CXX)
|
||||
SET(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
INCLUDE(FindPkgConfig)
|
||||
INCLUDE(ExternalProject)
|
||||
|
||||
SET(CMAKE_INSTALL_LIBDIR lib)
|
||||
SET(CMAKE_INSTALL_BINDIR bin)
|
||||
SET(CMAKE_INSTALL_INCLUDEDIR include)
|
||||
|
||||
IF(UNIX)
|
||||
IF(NOT APPLE)
|
||||
INCLUDE(GNUInstallDirs)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwrapv -DNDEBUG")
|
||||
|
||||
IF(BUILD_PYTHON)
|
||||
SET(BUILD_CXX ON)
|
||||
FIND_PACKAGE(PythonInterp)
|
||||
FIND_PACKAGE(PythonLibs)
|
||||
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
|
||||
SET(BUILD_CXX ON)
|
||||
SET(DOWNLOAD_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/downloads" CACHE PATH "Location where external projects will be downloaded.")
|
||||
|
||||
IF(PYTHON_VERSION_MAJOR GREATER_EQUAL 3)
|
||||
SET(CMAKE_SWIG_FLAGS "${CMAKE_SWIG_FLAGS};-py3;-DPY3")
|
||||
ENDIF()
|
||||
MARK_AS_ADVANCED(BUILD_CXX)
|
||||
MARK_AS_ADVANCED(DOWNLOAD_LOCATION)
|
||||
|
||||
FIND_PACKAGE(SWIG REQUIRED)
|
||||
INCLUDE(cmake/UseSWIG.cmake)
|
||||
ENDIF(BUILD_PYTHON)
|
||||
SET(${PROJECT_NAME}externalTargets "")
|
||||
|
||||
FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies.txt _Dependency_file)
|
||||
FOREACH(DEPENDENCY Protobuf Gflags Glog cbc CoinUtils Osi Clp Cgl)
|
||||
STRING(REGEX REPLACE ".*${DEPENDENCY} = ([0-9.]+).*" "\\1" ${DEPENDENCY}_VERSION ${_Dependency_file})
|
||||
ENDFOREACH()
|
||||
|
||||
IF(BUILD_CXX)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_GLOP -DUSE_BOP")
|
||||
FIND_PACKAGE(Threads REQUIRED)
|
||||
|
||||
FIND_PACKAGE(Protobuf REQUIRED)
|
||||
FIND_PACKAGE(Protobuf ${Protobuf_VERSION} QUIET)
|
||||
IF(NOT Protobuf_FOUND)
|
||||
MESSAGE(STATUS "Did not find system protobuff. Building as an external project")
|
||||
INCLUDE(cmake/external/protobuf.cmake)
|
||||
ENDIF()
|
||||
INCLUDE_DIRECTORIES(${Protobuf_INCLUDE_DIRS})
|
||||
|
||||
FILE(GLOB_RECURSE proto_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"ortools/*.proto")
|
||||
FIND_PACKAGE(Gflags ${Gflags_VERSION} QUIET)
|
||||
IF(NOT Gflags_FOUND)
|
||||
MESSAGE(STATUS "Did not find system gflags. Building as an external project")
|
||||
INCLUDE(cmake/external/gflags.cmake)
|
||||
ENDIF()
|
||||
INCLUDE_DIRECTORIES(${Gflags_INCLUDE_DIRS})
|
||||
|
||||
SET(GLOG_VERSION ${Glog_VERSION})
|
||||
PKG_CHECK_MODULES(GLOG libglog>=${GLOG_VERSION})
|
||||
# Set again since pkg_check_module resets GLOG_VERSION
|
||||
SET(GLOG_VERSION ${Glog_VERSION})
|
||||
IF(NOT GLOG_FOUND)
|
||||
MESSAGE(STATUS "Did not find system glog. Building as an external project.")
|
||||
INCLUDE(cmake/external/glog.cmake)
|
||||
ENDIF()
|
||||
INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIRS})
|
||||
|
||||
SET(Cbc_VERSION ${cbc_VERSION})
|
||||
PKG_CHECK_MODULES(Cbc cbc)
|
||||
SET(Cbc_VERSION ${cbc_VERSION})
|
||||
IF(NOT Cbc_FOUND)
|
||||
MESSAGE(STATUS "Did not find system coin-cbc. Building as an external Project.")
|
||||
INCLUDE(cmake/external/cbc.cmake)
|
||||
ENDIF()
|
||||
INCLUDE_DIRECTORIES(${Cbc_INCLUDE_DIRS})
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwrapv -DNDEBUG -DUSE_GLOP -DUSE_BOP -DUSE_CBC -DUSE_CLP")
|
||||
|
||||
FILE(GLOB_RECURSE proto_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "ortools/*.proto")
|
||||
SET(PROTOBUF_GENERATE_CPP_APPEND_PATH OFF)
|
||||
FIND_PACKAGE(Gflags REQUIRED)
|
||||
|
||||
PKG_CHECK_MODULES(CBC cbc)
|
||||
IF(CBC_FOUND)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CBC_CFLAGS} -DUSE_CBC")
|
||||
ENDIF(CBC_FOUND)
|
||||
|
||||
PKG_CHECK_MODULES(CLP clp)
|
||||
IF(CLP_FOUND)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CLP_CFLAGS} -DUSE_CLP")
|
||||
ENDIF(CLP_FOUND)
|
||||
|
||||
PKG_CHECK_MODULES(GLOG libglog)
|
||||
|
||||
INCLUDE_DIRECTORIES(.)
|
||||
INCLUDE_DIRECTORIES(examples)
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
||||
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIRS})
|
||||
|
||||
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${proto_files})
|
||||
ADD_LIBRARY(${PROJECT_NAME}Proto OBJECT ${PROTO_SRCS} ${PROTO_HDRS})
|
||||
ADD_DEPENDENCIES(${PROJECT_NAME}Proto ${${PROJECT_NAME}externalTargets})
|
||||
SET_TARGET_PROPERTIES(${PROJECT_NAME}Proto PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
SET(SUBTARGETS "")
|
||||
@@ -68,10 +90,11 @@ IF(BUILD_CXX)
|
||||
|
||||
ADD_LIBRARY(${PROJECT_NAME} SHARED ${SUBTARGETS})
|
||||
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
|
||||
${GLOG_LIBRARIES}
|
||||
${Cbc_LIBRARIES}
|
||||
${Gflags_LIBRARIES}
|
||||
${Protobuf_LIBRARIES}
|
||||
${gflags_LIBRARIES}
|
||||
${CBC_LIBRARIES})
|
||||
${GLOG_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}Proto)
|
||||
INSTALL(TARGETS ${PROJECT_NAME}
|
||||
@@ -82,12 +105,6 @@ IF(BUILD_CXX)
|
||||
ADD_SUBDIRECTORY(examples/cpp)
|
||||
ENDIF(BUILD_CXX)
|
||||
|
||||
IF(BUILD_PYTHON)
|
||||
FOREACH(SUBPROJECT constraint_solver algorithms graph linear_solver)
|
||||
ADD_SUBDIRECTORY(ortools/${SUBPROJECT}/python)
|
||||
ENDFOREACH(SUBPROJECT constraint_solver algorithms)
|
||||
ENDIF(BUILD_PYTHON)
|
||||
|
||||
INSTALL(DIRECTORY ortools
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
|
||||
8
Dependencies.txt
Normal file
8
Dependencies.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Protobuf = 3.3.0
|
||||
Gflags = 2.2.0
|
||||
Glog = 0.3.5
|
||||
cbc = 2.9.8
|
||||
CoinUtils = 2.10.13
|
||||
Osi = 0.107.8
|
||||
Clp = 1.16.10
|
||||
Cgl = 0.59.9
|
||||
47
cmake/external/cbc.cmake
vendored
Normal file
47
cmake/external/cbc.cmake
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
SET(ADD_CXXFLAGS "-DCBC_THREAD_SAFE -DCBC_NO_INTERRUPT")
|
||||
|
||||
FOREACH(COIN_PROJECT CoinUtils Osi Clp Cgl Cbc)
|
||||
SET(${COIN_PROJECT}_URL https://github.com/coin-or/${COIN_PROJECT}.git)
|
||||
SET(${COIN_PROJECT}_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/install/include)
|
||||
|
||||
ExternalProject_Add(${COIN_PROJECT}_project
|
||||
PREFIX ${COIN_PROJECT}
|
||||
GIT_REPOSITORY ${${COIN_PROJECT}_URL}
|
||||
GIT_TAG "releases/${${COIN_PROJECT}_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
UPDATE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${COIN_PROJECT}/src/${COIN_PROJECT}_project/configure
|
||||
--disable-bzlib --without-lapack --with-pic --enable-static --prefix=${CMAKE_CURRENT_BINARY_DIR}/install
|
||||
ADD_CXXFLAGS=${ADD_CXXFLAGS})
|
||||
|
||||
ADD_LIBRARY(${COIN_PROJECT} STATIC IMPORTED)
|
||||
SET_PROPERTY(TARGET ${COIN_PROJECT} PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/install/lib/lib${COIN_PROJECT}.a)
|
||||
|
||||
IF (${COIN_PROJECT} STREQUAL "Cbc" OR ${COIN_PROJECT} STREQUAL "Clp")
|
||||
ADD_LIBRARY(Osi${COIN_PROJECT} STATIC IMPORTED)
|
||||
SET_PROPERTY(TARGET Osi${COIN_PROJECT} PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/install/lib/libOsi${COIN_PROJECT}.a)
|
||||
ADD_LIBRARY(${COIN_PROJECT}Solver STATIC IMPORTED)
|
||||
SET_PROPERTY(TARGET ${COIN_PROJECT}Solver PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/install/lib/lib${COIN_PROJECT}Solver.a)
|
||||
ENDIF()
|
||||
|
||||
ADD_DEPENDENCIES(${COIN_PROJECT} ${COIN_PROJECT}_project)
|
||||
ENDFOREACH()
|
||||
|
||||
ADD_DEPENDENCIES(Osi_project CoinUtils_project)
|
||||
ADD_DEPENDENCIES(Clp_project Osi_project)
|
||||
ADD_DEPENDENCIES(Cgl_project Clp_project)
|
||||
ADD_DEPENDENCIES(Cbc_project Cgl_project)
|
||||
|
||||
SET_PROPERTY(TARGET Osi PROPERTY INTERFACE_LINK_LIBRARIES CoinUtils)
|
||||
SET_PROPERTY(TARGET Clp PROPERTY INTERFACE_LINK_LIBRARIES Osi)
|
||||
SET_PROPERTY(TARGET OsiClp PROPERTY INTERFACE_LINK_LIBRARIES Clp)
|
||||
SET_PROPERTY(TARGET ClpSolver PROPERTY INTERFACE_LINK_LIBRARIES Clp)
|
||||
SET_PROPERTY(TARGET Cgl PROPERTY INTERFACE_LINK_LIBRARIES Clp)
|
||||
SET_PROPERTY(TARGET Cbc PROPERTY INTERFACE_LINK_LIBRARIES Cgl)
|
||||
SET_PROPERTY(TARGET OsiCbc PROPERTY INTERFACE_LINK_LIBRARIES Cbc)
|
||||
SET_PROPERTY(TARGET CbcSolver PROPERTY INTERFACE_LINK_LIBRARIES Cbc)
|
||||
|
||||
LIST(APPEND ${PROJECT_NAME}externalTargets Cbc)
|
||||
SET(Cbc_LIBRARIES "")
|
||||
LIST(APPEND Cbc_LIBRARIES Cbc OsiCbc CbcSolver ClpSolver OsiClp)
|
||||
26
cmake/external/gflags.cmake
vendored
Normal file
26
cmake/external/gflags.cmake
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
SET(Gflags_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/gflags_project/src/gflags/include/)
|
||||
SET(Gflags_URL https://github.com/gflags/gflags)
|
||||
|
||||
ExternalProject_Add(Gflags_project
|
||||
PREFIX Gflags
|
||||
GIT_REPOSITORY ${Gflags_URL}
|
||||
GIT_TAG "v${Gflags_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
UPDATE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gflags_project/src/gflags
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND}
|
||||
-DBUILD_STATIC_LIBS=ON
|
||||
-DBUILD_TESTING=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${Gflags_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
ADD_LIBRARY(Gflags STATIC IMPORTED)
|
||||
SET_PROPERTY(TARGET Gflags PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/gflags_project/src/gflags/lib/libgflags.a)
|
||||
SET(Gflags_LIBRARIES "")
|
||||
LIST(APPEND Gflags_LIBRARIES Gflags)
|
||||
26
cmake/external/glog.cmake
vendored
Normal file
26
cmake/external/glog.cmake
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
SET(GLOG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog/)
|
||||
LIST(APPEND GLOG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog/src/)
|
||||
SET(GLOG_URL https://github.com/google/glog)
|
||||
|
||||
ExternalProject_Add(Glog_project
|
||||
PREFIX Glog
|
||||
GIT_REPOSITORY ${GLOG_URL}
|
||||
GIT_TAG "v${GLOG_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
UPDATE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND}
|
||||
-DBUILD_TESTING=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${Glogs_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
ADD_LIBRARY(GLOG STATIC IMPORTED)
|
||||
SET_PROPERTY(TARGET GLOG PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog/libglog.a)
|
||||
SET(GLOG_LIBRARIES "")
|
||||
LIST(APPEND GLOG_LIBRARIES GLOG)
|
||||
30
cmake/external/protobuf.cmake
vendored
Normal file
30
cmake/external/protobuf.cmake
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
FIND_PACKAGE(ZLIB REQUIRED)
|
||||
|
||||
SET(Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/protobuf_project/src/protobuf/src)
|
||||
SET(Protobuf_URL https://github.com/google/protobuf)
|
||||
|
||||
ExternalProject_Add(Protobuf_project
|
||||
PREFIX Protobuf
|
||||
GIT_REPOSITORY ${Protobuf_URL}
|
||||
GIT_TAG "v${Protobuf_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
UPDATE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/protobuf_project/src/protobuf
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} cmake/
|
||||
-Dprotobuf_BUILD_TESTS=OFF
|
||||
-DBUILD_STATIC_LIBS=ON
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${Protobuf_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
ADD_LIBRARY(Protobuf STATIC IMPORTED)
|
||||
SET_PROPERTY(TARGET Protobuf PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/protobuf_project/src/protobuf/libprotobuf.a)
|
||||
SET(Protobuf_LIBRARIES "")
|
||||
LIST(APPEND Protobuf_LIBRARIES Protobuf ${ZLIB_LIBRARIES})
|
||||
|
||||
SET(Protobuf_PROTOC_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/protobuf_project/src/protobuf/protoc)
|
||||
@@ -1,10 +1,17 @@
|
||||
ADD_LIBRARY(executable_libs STATIC
|
||||
ADD_LIBRARY(${PROJECT_NAME}examples SHARED
|
||||
cvrptw_lib.cc
|
||||
parse_dimacs_assignment.cc
|
||||
fap_model_printer.cc
|
||||
fap_parser.cc
|
||||
fap_utilities.cc)
|
||||
ADD_DEPENDENCIES(executable_libs ${PROJECT_NAME}Proto)
|
||||
|
||||
INSTALL(TARGETS ${PROJECT_NAME}examples
|
||||
EXPORT ${PROJECT_NAME}_Exports
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
ADD_DEPENDENCIES(${PROJECT_NAME}examples ${PROJECT_NAME}Proto)
|
||||
|
||||
FOREACH(EXECUTABLE
|
||||
costas_array
|
||||
@@ -44,6 +51,6 @@ FOREACH(EXECUTABLE
|
||||
tsp
|
||||
weighted_tardiness_sat)
|
||||
ADD_EXECUTABLE(${EXECUTABLE} ${EXECUTABLE}.cc)
|
||||
TARGET_LINK_LIBRARIES(${EXECUTABLE} executable_libs ${PROJECT_NAME})
|
||||
TARGET_LINK_LIBRARIES(${EXECUTABLE} ${PROJECT_NAME}examples ${PROJECT_NAME})
|
||||
INSTALL(TARGETS ${EXECUTABLE} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
ENDFOREACH()
|
||||
|
||||
@@ -4,4 +4,6 @@ IF(BUILD_PYTHON)
|
||||
|
||||
SWIG_ADD_LIBRARY(pywrapknapsack_solver TYPE MODULE LANGUAGE python SOURCES knapsack_solver.i)
|
||||
SWIG_LINK_LIBRARIES(pywrapknapsack_solver ${PROJECT_NAME})
|
||||
|
||||
INSTALL(TARGETS _pywrapknapsack_solver DESTINATION ${PYTHON_MODULE_PATH})
|
||||
ENDIF(BUILD_PYTHON)
|
||||
@@ -4,15 +4,6 @@ PROJECT(${PROJECT_NAME}_constraint_solver)
|
||||
|
||||
FILE(GLOB ${PROJECT_NAME}_SOURCES "*.cc")
|
||||
|
||||
IF(BUILD_PYTHON)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_ASSIGN_PROTO_SRCS assignment.proto)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_SEARCH_PROTO_SRCS search_limit.proto)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_MODEL__PROTO_SRCS model.proto)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_ROUTEN_PROTO_SRCS routing_enums.proto)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_SOLVER_PROTO_SRCS solver_parameters.proto)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_ROUTPA_PROTO_SRCS routing_parameters.proto)
|
||||
ENDIF(BUILD_PYTHON)
|
||||
|
||||
ADD_LIBRARY(${PROJECT_NAME} OBJECT ${${PROJECT_NAME}_SOURCES})
|
||||
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
|
||||
@@ -4,4 +4,6 @@ IF(BUILD_PYTHON)
|
||||
|
||||
SWIG_ADD_LIBRARY(pywrapcp TYPE MODULE LANGUAGE python SOURCES routing.i)
|
||||
SWIG_LINK_LIBRARIES(pywrapcp ${PROJECT_NAME})
|
||||
|
||||
INSTALL(TARGETS _pywrapcp DESTINATION ${PYTHON_MODULE_PATH})
|
||||
ENDIF(BUILD_PYTHON)
|
||||
@@ -4,4 +4,6 @@ IF(BUILD_PYTHON)
|
||||
|
||||
SWIG_ADD_LIBRARY(pywrapgraph TYPE MODULE LANGUAGE python SOURCES graph.i)
|
||||
SWIG_LINK_LIBRARIES(pywrapgraph ${PROJECT_NAME})
|
||||
|
||||
INSTALL(TARGETS _pywrapgraph DESTINATION ${PYTHON_MODULE_PATH})
|
||||
ENDIF(BUILD_PYTHON)
|
||||
@@ -4,11 +4,7 @@ PROJECT(${PROJECT_NAME}_linear_solver)
|
||||
|
||||
FILE(GLOB ${PROJECT_NAME}_SOURCES "*.cc")
|
||||
|
||||
IF(BUILD_PYTHON)
|
||||
PROTOBUF_GENERATE_PYTHON(PY_PROTO_SRCS linear_solver.proto)
|
||||
ENDIF(BUILD_PYTHON)
|
||||
|
||||
ADD_LIBRARY(${PROJECT_NAME} OBJECT ${${PROJECT_NAME}_SOURCES})
|
||||
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
ADD_DEPENDENCIES(${PROJECT_NAME} ${ROOT_PROJECT}Proto)
|
||||
ADD_DEPENDENCIES(${PROJECT_NAME} ${ROOT_PROJECT}Proto)
|
||||
|
||||
@@ -4,4 +4,6 @@ IF(BUILD_PYTHON)
|
||||
|
||||
SWIG_ADD_LIBRARY(pywraplp TYPE MODULE LANGUAGE python SOURCES linear_solver.i)
|
||||
SWIG_LINK_LIBRARIES(pywraplp ${PROJECT_NAME})
|
||||
|
||||
INSTALL(TARGETS _pywraplp DESTINATION ${PYTHON_MODULE_PATH})
|
||||
ENDIF()
|
||||
Reference in New Issue
Block a user