set_property(SOURCE init.i PROPERTY CPLUSPLUS ON) set_property(SOURCE init.i PROPERTY SWIG_MODULE_NAME pywrapinit) set_property(SOURCE init.i PROPERTY COMPILE_DEFINITIONS ${OR_TOOLS_COMPILE_DEFINITIONS} ABSL_MUST_USE_RESULT) swig_add_library(pywrapinit TYPE MODULE LANGUAGE python OUTPUT_DIR ${PYTHON_PROJECT_DIR}/init SOURCES init.i) target_include_directories(pywrapinit PRIVATE ${Python3_INCLUDE_DIRS}) set_property(TARGET pywrapinit PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON) target_compile_definitions(pywrapinit PUBLIC "PY3") # note: macOS is APPLE and also UNIX ! if(APPLE) set_target_properties(pywrapinit PROPERTIES SUFFIX ".so" INSTALL_RPATH "@loader_path;@loader_path/../../${PROJECT_NAME}/.libs") set_property(TARGET pywrapinit APPEND PROPERTY LINK_FLAGS "-flat_namespace -undefined suppress") elseif(UNIX) set_target_properties(pywrapinit PROPERTIES INSTALL_RPATH "$ORIGIN:$ORIGIN/../../${PROJECT_NAME}/.libs") endif() target_link_libraries(pywrapinit PRIVATE ortools::ortools) # Variable PYTHON_LIBRARIES can contains keyword `optimized` # which won't be interpreted inside a generator expression. # i.e. we can't use: $<$:${PYTHON_LIBRARIES}> # see: https://cmake.org/cmake/help/git-stage/command/target_link_libraries.html#command:target_link_libraries if(MSVC) target_link_libraries(pywrapinit PRIVATE ${Python3_LIBRARIES}) endif()