Skip to content

Commit 3063edb

Browse files
committed
Merge pull request #146 from cchampet/build_pythonLibWithPythonInterface
Deploy python lib with python interface and java lib in a lib/java folder
2 parents 6832c31 + 1d1d9ad commit 3063edb

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

src/CMakeLists.txt

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ else()
3535
endif()
3636
set_target_properties(avtranscoder-shared PROPERTIES SOVERSION ${AVTRANSCODER_VERSION_MAJOR})
3737
set_target_properties(avtranscoder-shared PROPERTIES VERSION ${AVTRANSCODER_VERSION})
38+
set_target_properties(avtranscoder-shared PROPERTIES INSTALL_RPATH_USE_LINK_PATH 1)
3839
target_link_libraries(avtranscoder-shared ${FFMPEG_LIBRARIES})
3940
target_include_directories(avtranscoder-shared PUBLIC
4041
${AVTRANSCODER_SRC_PATH} ${FFMPEG_INCLUDE_DIR})
@@ -48,11 +49,8 @@ install(
4849
PATTERN "*.hpp"
4950
PATTERN "*.i"
5051
)
51-
set(LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}/lib")
52-
install(
53-
DIRECTORY "${LIBRARY_OUTPUT_PATH}"
54-
DESTINATION "${CMAKE_INSTALL_PREFIX}"
55-
)
52+
install(TARGETS avtranscoder-static DESTINATION lib/)
53+
install(TARGETS avtranscoder-shared DESTINATION lib/)
5654

5755
### Install AvTranscoder ressource
5856
install(
@@ -97,6 +95,13 @@ if(SWIG_FOUND)
9795
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES SOVERSION ${AVTRANSCODER_VERSION_MAJOR})
9896
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES VERSION ${AVTRANSCODER_VERSION})
9997
endif()
98+
# Force the library to look in the project lib folder relatively
99+
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH 1)
100+
if(APPLE)
101+
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES INSTALL_RPATH "@loader_path/../../..")
102+
else()
103+
set_target_properties(${SWIG_MODULE_avtranscoder-py_REAL_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN/../../..:$ORIGIN")
104+
endif()
100105
swig_link_libraries(avtranscoder-py avtranscoder-shared ${PYTHON_LIBRARIES})
101106

102107
# Install python interface
@@ -106,7 +111,8 @@ if(SWIG_FOUND)
106111
FILES ${AVTRANSCODER_PYTHON_BINDING_FILE} ${AVTRANSCODER_PYTHON_INIT_FILE}
107112
DESTINATION ${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}
108113
)
109-
# Install __init__.py
114+
# Install python lib and __init__.py files
115+
install(TARGETS ${SWIG_MODULE_avtranscoder-py_REAL_NAME} DESTINATION "lib/python${PYTHONLIBS_VERSION_STRING}/site-packages/pyAvTranscoder/")
110116
install(CODE "file(WRITE ${CMAKE_INSTALL_PREFIX}/${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}/__init__.py)")
111117
else()
112118
message("PYTHON not found, will not build python binding.")
@@ -136,6 +142,13 @@ if(SWIG_FOUND)
136142
set_target_properties(${SWIG_MODULE_avtranscoder-java_REAL_NAME} PROPERTIES SOVERSION ${AVTRANSCODER_VERSION_MAJOR})
137143
set_target_properties(${SWIG_MODULE_avtranscoder-java_REAL_NAME} PROPERTIES VERSION ${AVTRANSCODER_VERSION})
138144
endif()
145+
# Force the library to look in the project lib folder relatively
146+
set_target_properties(${SWIG_MODULE_avtranscoder-java_REAL_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH 1)
147+
if(APPLE)
148+
set_target_properties(${SWIG_MODULE_avtranscoder-java_REAL_NAME} PROPERTIES INSTALL_RPATH "@loader_path/..")
149+
else()
150+
set_target_properties(${SWIG_MODULE_avtranscoder-java_REAL_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN/..:$ORIGIN")
151+
endif()
139152
swig_link_libraries(avtranscoder-java avtranscoder-shared)
140153

141154
# Post build of java binding : compile java files (generate class files) and create jar
@@ -152,7 +165,8 @@ if(SWIG_FOUND)
152165
COMMAND ${Java_JAR_EXECUTABLE} cf ${AVTRANSCODER_JAR_NAME} "-C" ${AVTRANSCODER_JAVA_CLASS_OUTPUT_PATH} "."
153166
)
154167

155-
# Install jar file
168+
# Install java lib and jar files
169+
install(TARGETS ${SWIG_MODULE_avtranscoder-java_REAL_NAME} DESTINATION "lib/java")
156170
install(FILES ${AVTRANSCODER_JAR_PATH}/${AVTRANSCODER_JAR_NAME} DESTINATION "share/java/")
157171
else()
158172
message("JAVA not found, will not build java binding.")

tools/travis.python.nosetests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
# Get avtranscoder library
4-
export PYTHONPATH=`pwd`/build/dist/lib:`pwd`/build/dist/lib/python2.7.6/site-packages/:$PYTHONPATH
4+
export PYTHONPATH=`pwd`/build/dist/lib/python2.7.6/site-packages/:$PYTHONPATH
55

66
# Get avtranscoder profiles
77
export AVPROFILES=`pwd`/build/dist/share/ressource

0 commit comments

Comments
 (0)