Skip to content

Commit e853328

Browse files
author
Clement Champetier
committed
CMake: add argument DISABLE_PYTHON_BINDING
1 parent 618569c commit e853328

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

src/CMakeLists.txt

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -78,35 +78,39 @@ if(SWIG_FOUND)
7878
set_source_files_properties(${AVTRANSCODER_BINDING_FILE} PROPERTIES CPLUSPLUS ON)
7979

8080
### PYTHON BINDING
81-
find_package(PythonLibs)
82-
if(PYTHONLIBS_FOUND)
83-
include_directories(${PYTHON_INCLUDE_PATH})
84-
85-
# Swig flags
86-
set(CMAKE_SWIG_FLAGS -c++ -fcompact)
87-
88-
# Create '_avtranscoder' shared lib (python)
89-
swig_add_module(avtranscoder-py python ${AVTRANSCODER_BINDING_FILE})
90-
# For Python binding, need to compile the wrapper into a lib called "_<module_name>.so"
91-
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES OUTPUT_NAME _avtranscoder)
92-
if(NOT APPLE AND NOT WIN32)
93-
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES SOVERSION ${AVTRANSCODER_VERSION_MAJOR})
94-
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES VERSION ${AVTRANSCODER_VERSION})
95-
endif()
96-
swig_link_libraries(avtranscoder-py avtranscoder-shared ${PYTHON_LIBRARIES})
97-
98-
# Install python interface
99-
set(AVTRANSCODER_PYTHON_BINDING_FILE "${CMAKE_SWIG_OUTDIR}/avtranscoder.py")
100-
set(AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR "lib/python${PYTHONLIBS_VERSION_STRING}/site-packages/pyAvTranscoder/")
101-
install(
102-
FILES ${AVTRANSCODER_PYTHON_BINDING_FILE} ${AVTRANSCODER_PYTHON_INIT_FILE}
103-
DESTINATION ${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}
104-
)
105-
# Install __init__.py
106-
install(CODE "file(WRITE ${CMAKE_INSTALL_PREFIX}/${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}/__init__.py)")
81+
if(DISABLE_PYTHON_BINDING)
82+
message("PYTHON binding disabled, will not build python binding.")
10783
else()
108-
message("PYTHON not found, will not build python binding.")
109-
endif()
84+
find_package(PythonLibs)
85+
if(PYTHONLIBS_FOUND)
86+
include_directories(${PYTHON_INCLUDE_PATH})
87+
88+
# Swig flags
89+
set(CMAKE_SWIG_FLAGS -c++ -fcompact)
90+
91+
# Create '_avtranscoder' shared lib (python)
92+
swig_add_module(avtranscoder-py python ${AVTRANSCODER_BINDING_FILE})
93+
# For Python binding, need to compile the wrapper into a lib called "_<module_name>.so"
94+
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES OUTPUT_NAME _avtranscoder)
95+
if(NOT APPLE AND NOT WIN32)
96+
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES SOVERSION ${AVTRANSCODER_VERSION_MAJOR})
97+
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES VERSION ${AVTRANSCODER_VERSION})
98+
endif()
99+
swig_link_libraries(avtranscoder-py avtranscoder-shared ${PYTHON_LIBRARIES})
100+
101+
# Install python interface
102+
set(AVTRANSCODER_PYTHON_BINDING_FILE "${CMAKE_SWIG_OUTDIR}/avtranscoder.py")
103+
set(AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR "lib/python${PYTHONLIBS_VERSION_STRING}/site-packages/pyAvTranscoder/")
104+
install(
105+
FILES ${AVTRANSCODER_PYTHON_BINDING_FILE} ${AVTRANSCODER_PYTHON_INIT_FILE}
106+
DESTINATION ${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}
107+
)
108+
# Install __init__.py
109+
install(CODE "file(WRITE ${CMAKE_INSTALL_PREFIX}/${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}/__init__.py)")
110+
else()
111+
message("PYTHON not found, will not build python binding.")
112+
endif()
113+
endif()
110114

111115
### JAVA BINDING
112116
find_package(Java)

0 commit comments

Comments
 (0)