Skip to content

Commit b2a5369

Browse files
committed
Work on cmake and qmake install
1 parent da9d035 commit b2a5369

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

minivideo/CMakeLists.txt

+11-8
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,9 @@ set(minivideo_PUBLIC_HEADERS
276276
src/minivideo_mediafile.h src/minivideo_mediastream.h src/minivideo_metadata_vendors.h
277277
src/minivideo_settings.h src/minivideo_typedef.h # internals?
278278
src/minivideo_codecs_private_struct.h
279-
src/decoder/h264/h264_parameterset_struct.h
280-
src/decoder/h265/h265_parameterset_struct.h
281-
src/decoder/h266/h266_parameterset_struct.h
279+
#src/decoder/h264/h264_parameterset_struct.h
280+
#src/decoder/h265/h265_parameterset_struct.h
281+
#src/decoder/h266/h266_parameterset_struct.h
282282
)
283283

284284
# Build
@@ -316,7 +316,7 @@ if (BUILD_STATIC_LIBS)
316316
endif (BUILD_STATIC_LIBS)
317317

318318

319-
# Deployment
319+
# Deployment (optional step, requires root credentials, relative to CMAKE_INSTALL_PREFIX)
320320
################################################################################
321321

322322
# pkg-config integration
@@ -326,16 +326,19 @@ set(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix
326326
set(BIN_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/bin CACHE PATH "Installation prefix for user executables" FORCE)
327327
set(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries" FORCE)
328328
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/minivideo CACHE PATH "Installation prefix for header files" FORCE)
329-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libminivideo.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libminivideo.pc)
329+
configure_file(libminivideo.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libminivideo.pc)
330330

331-
# Install the shared library and its header into the system (optional step, requires root credentials)
332-
# Relative to $<INSTALL_PREFIX>
331+
# Install pkgconfig file
332+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libminivideo.pc DESTINATION lib/pkgconfig/)
333+
334+
# Install the library into the system
333335
if (BUILD_SHARED_LIBS)
334336
install(TARGETS minivideo_shared DESTINATION lib/)
335337
endif (BUILD_SHARED_LIBS)
336338
if (BUILD_STATIC_LIBS)
337339
install(TARGETS minivideo_static DESTINATION lib/)
338340
endif (BUILD_STATIC_LIBS)
339341

342+
# Install headers
340343
install(FILES ${minivideo_PUBLIC_HEADERS} DESTINATION include/minivideo/)
341-
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libminivideo.pc DESTINATION lib/pkgconfig/)
344+
install(DIRECTORY src/decoder/ DESTINATION include/minivideo/decoder/ FILES_MATCHING PATTERN "*_parameterset.h")

minivideo/minivideo.pro

+22-4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ CONFIG += c++14 shared_and_static
1111

1212
# minivideo files --------------------------------------------------------------
1313

14+
INCLUDEPATH += $${PWD}/src/
15+
1416
SOURCES = $$files(src/*.cpp, true)
1517
HEADERS = $$files(src/*.h, true)
1618

@@ -24,6 +26,10 @@ DESTDIR = bin/$${QT_ARCH}/
2426

2527
# build settings ---------------------------------------------------------------
2628

29+
VER_MAJ = 0
30+
VER_MIN = 15
31+
VER_PAT = 0
32+
2733
# build settings and version are usually set by the CMake build system.
2834
# we force MINIVIDEO_SETTINGS_H to make sure we don't use the CMake settings file.
2935
DEFINES += MINIVIDEO_SETTINGS_H
@@ -92,10 +98,22 @@ win32 {
9298

9399
unix {
94100
isEmpty(PREFIX) { PREFIX = /usr/local }
95-
library.files += $${OUT_PWD}/$${DESTDIR}/libminivideo.so
96-
library.files += $${OUT_PWD}/$${DESTDIR}/libminivideo.so.*
101+
102+
library.files += $${DESTDIR}/libminivideo.so
97103
library.path = $${PREFIX}/lib/
98-
headers.files += $${OUT_PWD}/src/minivideo*.h
104+
library_links.extra+= ln -sf libminivideo.so $${PREFIX}/lib/libminivideo.so.$${VER_MAJ};
105+
library_links.extra+= ln -sf libminivideo.so $${PREFIX}/lib/libminivideo.so.$${VER_MAJ}.$${VER_MIN};
106+
library_links.extra+= ln -sf libminivideo.so $${PREFIX}/lib/libminivideo.so.$${VER_MAJ}.$${VER_MIN}.$${VER_PAT};
107+
library_links.path = $${PREFIX}/lib/
108+
109+
headers.files += $${PWD}/src/minivideo*.h
99110
headers.path = $${PREFIX}/include/minivideo/
100-
INSTALLS += library headers
111+
headers_h264.files += $${PWD}/src/decoder/h264/h264_parameterset_struct.h
112+
headers_h264.path = $${PREFIX}/include/minivideo/decoder/h264/
113+
headers_h265.files += $${PWD}/src/decoder/h265/h265_parameterset_struct.h
114+
headers_h265.path = $${PREFIX}/include/minivideo/decoder/h265/
115+
headers_h266.files += $${PWD}/src/decoder/h266/h266_parameterset_struct.h
116+
headers_h266.path = $${PREFIX}/include/minivideo/decoder/h266/
117+
118+
INSTALLS += library library_links headers headers_h264 headers_h265 headers_h266
101119
}

0 commit comments

Comments
 (0)