Skip to content

Commit

Permalink
Add QT_VERSION_STR define to OpenShotVersion.h
Browse files Browse the repository at this point in the history
The CMake process will pick up Qt's Qt5Core_VERSION_STRING and
stick it in a cache variable (with forced updating each run),
and a new `#define` in the header exports it to the library and
to the Python bindings so that it can be queried at runtime.
  • Loading branch information
ferdnyc committed May 7, 2020
1 parent 15c3efb commit 5c688f1
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
12 changes: 6 additions & 6 deletions CMakeLists.txt
Expand Up @@ -91,12 +91,6 @@ if(DEFINED ENABLE_TESTS)
set(ENABLE_TESTS ${ENABLE_TESTS} CACHE BOOL "Build unit tests (requires UnitTest++)" FORCE)
endif()

########## Configure Version.h header ##############
configure_file(include/OpenShotVersion.h.in include/OpenShotVersion.h @ONLY)
# We'll want that installed later
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/OpenShotVersion.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libopenshot)

#### Work around a GCC < 9 bug with handling of _Pragma() in macros
#### See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578
if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND
Expand Down Expand Up @@ -142,6 +136,12 @@ endif()
############## PROCESS src/ DIRECTORIES ##############
add_subdirectory(src)

########## Configure Version.h header ##############
configure_file(include/OpenShotVersion.h.in include/OpenShotVersion.h @ONLY)
# We'll want that installed later
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/OpenShotVersion.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libopenshot)

################### DOCUMENTATION ###################
# Find Doxygen (used for documentation)
set(DOCS_ENABLED FALSE) # Only set true if Doxygen is found and configured
Expand Down
5 changes: 4 additions & 1 deletion include/OpenShotVersion.h.in
Expand Up @@ -42,6 +42,9 @@

#define OPENSHOT_VERSION_SO @PROJECT_SO_VERSION@ /// Shared object version number. This increments any time the API and ABI changes (so old apps will no longer link)

// Useful dependency versioning
#define QT_VERSION_STR "@QT_VERSION_STR@"

#include <sstream>

namespace openshot
Expand All @@ -67,4 +70,4 @@ namespace openshot
openshot::OpenShotVersion GetVersion();
}

#endif // OPENSHOT_VERSION_H
#endif // OPENSHOT_VERSION_H
4 changes: 4 additions & 0 deletions src/CMakeLists.txt
Expand Up @@ -289,6 +289,10 @@ foreach(_qt_comp IN LISTS _qt_components)
endif()
endforeach()

# Keep track of Qt version, to embed in our version header
set(QT_VERSION_STR ${Qt5Core_VERSION_STRING} CACHE STRING "Qt version linked with" FORCE)
mark_as_advanced(QT_VERSION_STR)

################### FFMPEG #####################
# Find FFmpeg libraries (used for video encoding / decoding)
find_package(FFmpeg REQUIRED COMPONENTS avcodec avdevice avformat avutil swscale)
Expand Down

0 comments on commit 5c688f1

Please sign in to comment.