Skip to content

Commit 1ec431f

Browse files
committed
Simplify CMakeLists with loops
1 parent c685571 commit 1ec431f

File tree

2 files changed

+42
-153
lines changed

2 files changed

+42
-153
lines changed

src/CMakeLists.txt

Lines changed: 26 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -82,33 +82,14 @@ ENDIF (ImageMagick_FOUND)
8282
# Find FFmpeg libraries (used for video encoding / decoding)
8383
FIND_PACKAGE(FFmpeg REQUIRED)
8484

85-
IF (AVCODEC_FOUND)
86-
include_directories(${AVCODEC_INCLUDE_DIRS})
87-
ENDIF (AVCODEC_FOUND)
88-
IF (AVDEVICE_FOUND)
89-
include_directories(${AVDEVICE_INCLUDE_DIRS})
90-
ENDIF (AVDEVICE_FOUND)
91-
IF (AVFORMAT_FOUND)
92-
include_directories(${AVFORMAT_INCLUDE_DIRS})
93-
ENDIF (AVFORMAT_FOUND)
94-
IF (AVFILTER_FOUND)
95-
include_directories(${AVFILTER_INCLUDE_DIRS})
96-
ENDIF (AVFILTER_FOUND)
97-
IF (AVUTIL_FOUND)
98-
include_directories(${AVUTIL_INCLUDE_DIRS})
99-
ENDIF (AVUTIL_FOUND)
100-
IF (POSTPROC_FOUND)
101-
include_directories(${POSTPROC_INCLUDE_DIRS})
102-
ENDIF (POSTPROC_FOUND)
103-
IF (SWSCALE_FOUND)
104-
include_directories(${SWSCALE_INCLUDE_DIRS})
105-
ENDIF (SWSCALE_FOUND)
106-
IF (SWRESAMPLE_FOUND)
107-
include_directories(${SWRESAMPLE_INCLUDE_DIRS})
108-
ENDIF (SWRESAMPLE_FOUND)
109-
IF (AVRESAMPLE_FOUND)
110-
include_directories(${AVRESAMPLE_INCLUDE_DIRS})
111-
ENDIF (AVRESAMPLE_FOUND)
85+
foreach(ffmpeg_comp AVCODEC AVDEVICE AVFORMAT AVFILTER AVUTIL POSTPROC SWSCALE SWRESAMPLE AVRESAMPLE)
86+
if(${ffmpeg_comp}_FOUND)
87+
# message(STATUS "Adding include dir for ${ffmpeg_comp}")
88+
include_directories(${${ffmpeg_comp}_INCLUDE_DIRS})
89+
add_definitions(${${ffmpeg_comp}_DEFINITIONS})
90+
list(APPEND FF_LIBRARIES ${${ffmpeg_comp}_LIBRARIES})
91+
endif()
92+
endforeach()
11293

11394
################# LIBOPENSHOT-AUDIO ###################
11495
# Find JUCE-based openshot Audio libraries
@@ -119,38 +100,17 @@ include_directories(${LIBOPENSHOT_AUDIO_INCLUDE_DIRS})
119100

120101
################# QT5 ###################
121102
# Find QT5 libraries
122-
find_package(Qt5Widgets REQUIRED)
123-
find_package(Qt5Core REQUIRED)
124-
find_package(Qt5Gui REQUIRED)
125-
find_package(Qt5Multimedia REQUIRED)
126-
find_package(Qt5MultimediaWidgets REQUIRED)
127-
128-
# Include Qt headers (needed for compile)
129-
include_directories(${Qt5Widgets_INCLUDE_DIRS})
130-
include_directories(${Qt5Core_INCLUDE_DIRS})
131-
include_directories(${Qt5Gui_INCLUDE_DIRS})
132-
include_directories(${Qt5Multimedia_INCLUDE_DIRS})
133-
include_directories(${Qt5MultimediaWidgets_INCLUDE_DIRS})
134-
135-
add_definitions(${Qt5Widgets_DEFINITIONS})
136-
add_definitions(${Qt5Core_DEFINITIONS})
137-
add_definitions(${Qt5Gui_DEFINITIONS})
138-
add_definitions(${Qt5Multimedia_DEFINITIONS})
139-
add_definitions(${Qt5MultimediaWidgets_DEFINITIONS})
140-
141-
SET(QT_LIBRARIES ${Qt5Widgets_LIBRARIES}
142-
${Qt5Core_LIBRARIES}
143-
${Qt5Gui_LIBRARIES}
144-
${Qt5Multimedia_LIBRARIES}
145-
${Qt5MultimediaWidgets_LIBRARIES})
146-
147-
# Set compiler flags for Qt
148-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} ")
149-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ")
150-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ")
151-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Multimedia_EXECUTABLE_COMPILE_FLAGS} ")
152-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5MultimediaWidgets_EXECUTABLE_COMPILE_FLAGS} ")
153-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -ggdb ")
103+
foreach(qt_lib Qt5Widgets Qt5Core Qt5Gui Qt5Multimedia Qt5MultimediaWidgets)
104+
find_package(${qt_lib} REQUIRED)
105+
# Header files
106+
include_directories(${${qt_lib}_INCLUDE_DIRS})
107+
# Compiler definitions
108+
add_definitions(${${qt_lib}_DEFINITIONS})
109+
# Other CFLAGS
110+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${qt_lib}_EXECUTABLE_COMPILE_FLAGS}")
111+
# For use when linking
112+
list(APPEND QT_LIBRARIES ${${qt_lib}_LIBRARIES})
113+
endforeach()
154114

155115
# Manually moc Qt files
156116
qt5_wrap_cpp(MOC_FILES ${QT_HEADER_FILES})
@@ -309,59 +269,32 @@ set_target_properties(openshot
309269
############### LINK LIBRARY #################
310270
SET ( REQUIRED_LIBRARIES
311271
${LIBOPENSHOT_AUDIO_LIBRARIES}
272+
${FF_LIBRARIES}
312273
${QT_LIBRARIES}
313274
${PROFILER}
314275
${JSONCPP_LIBRARY}
315276
${ZMQ_LIBRARIES}
316277
)
317278

318-
IF (AVCODEC_FOUND)
319-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${AVCODEC_LIBRARIES} )
320-
ENDIF (AVCODEC_FOUND)
321-
IF (AVDEVICE_FOUND)
322-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${AVDEVICE_LIBRARIES} )
323-
ENDIF (AVDEVICE_FOUND)
324-
IF (AVFORMAT_FOUND)
325-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${AVFORMAT_LIBRARIES} )
326-
ENDIF (AVFORMAT_FOUND)
327-
IF (AVFILTER_FOUND)
328-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${AVFILTER_LIBRARIES} )
329-
ENDIF (AVFILTER_FOUND)
330-
IF (AVUTIL_FOUND)
331-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${AVUTIL_LIBRARIES} )
332-
ENDIF (AVUTIL_FOUND)
333-
IF (POSTPROC_FOUND)
334-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${POSTPROC_LIBRARIES} )
335-
ENDIF (POSTPROC_FOUND)
336-
IF (SWSCALE_FOUND)
337-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${SWSCALE_LIBRARIES} )
338-
ENDIF (SWSCALE_FOUND)
339-
IF (SWRESAMPLE_FOUND)
340-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${SWRESAMPLE_LIBRARIES} )
341-
ENDIF (SWRESAMPLE_FOUND)
342-
IF (AVRESAMPLE_FOUND)
343-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${AVRESAMPLE_LIBRARIES} )
344-
ENDIF (AVRESAMPLE_FOUND)
345-
346279
IF (RESVG_FOUND)
347-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${RESVG_LIBRARIES} )
280+
list(APPEND REQUIRED_LIBRARIES ${RESVG_LIBRARIES})
348281
ENDIF(RESVG_FOUND)
349282

350283
IF (OPENMP_FOUND)
351-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${OpenMP_CXX_FLAGS} )
284+
list(APPEND REQUIRED_LIBRARIES ${OpenMP_CXX_FLAGS})
352285
ENDIF (OPENMP_FOUND)
353286

354287
IF (ImageMagick_FOUND)
355-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${ImageMagick_LIBRARIES} )
288+
list(APPEND REQUIRED_LIBRARIES ${ImageMagick_LIBRARIES})
356289
ENDIF (ImageMagick_FOUND)
357290

358291
IF (BLACKMAGIC_FOUND)
359-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${BLACKMAGIC_LIBRARY_DIR} )
292+
list(APPEND REQUIRED_LIBRARIES ${BLACKMAGIC_LIBRARY_DIR})
360293
ENDIF (BLACKMAGIC_FOUND)
361294

362295
IF (WIN32)
363296
# Required for exception handling on Windows
364-
SET ( REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} "imagehlp" "dbghelp" )
297+
list(APPEND REQUIRED_LIBRARIES "imagehlp" "dbghelp" )
365298
ENDIF(WIN32)
366299

367300
# Link all referenced libraries
@@ -400,7 +333,7 @@ add_subdirectory(bindings)
400333
set(LIB_INSTALL_DIR lib${LIB_SUFFIX}) # determine correct lib folder
401334

402335
# Install primary library
403-
INSTALL( TARGETS openshot
336+
INSTALL(TARGETS openshot
404337
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
405338
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
406339
RUNTIME DESTINATION ${LIB_INSTALL_DIR}

tests/CMakeLists.txt

Lines changed: 16 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -81,34 +81,13 @@ ENDIF (ImageMagick_FOUND)
8181
# Find FFmpeg libraries (used for video encoding / decoding)
8282
FIND_PACKAGE(FFmpeg REQUIRED)
8383

84-
# Include FFmpeg headers (needed for compile)
85-
IF (AVCODEC_FOUND)
86-
include_directories(${AVCODEC_INCLUDE_DIRS})
87-
ENDIF (AVCODEC_FOUND)
88-
IF (AVDEVICE_FOUND)
89-
include_directories(${AVDEVICE_INCLUDE_DIRS})
90-
ENDIF (AVDEVICE_FOUND)
91-
IF (AVFORMAT_FOUND)
92-
include_directories(${AVFORMAT_INCLUDE_DIRS})
93-
ENDIF (AVFORMAT_FOUND)
94-
IF (AVFILTER_FOUND)
95-
include_directories(${AVFILTER_INCLUDE_DIRS})
96-
ENDIF (AVFILTER_FOUND)
97-
IF (AVUTIL_FOUND)
98-
include_directories(${AVUTIL_INCLUDE_DIRS})
99-
ENDIF (AVUTIL_FOUND)
100-
IF (POSTPROC_FOUND)
101-
include_directories(${POSTPROC_INCLUDE_DIRS})
102-
ENDIF (POSTPROC_FOUND)
103-
IF (SWSCALE_FOUND)
104-
include_directories(${SWSCALE_INCLUDE_DIRS})
105-
ENDIF (SWSCALE_FOUND)
106-
IF (SWRESAMPLE_FOUND)
107-
include_directories(${SWRESAMPLE_INCLUDE_DIRS})
108-
ENDIF (SWRESAMPLE_FOUND)
109-
IF (AVRESAMPLE_FOUND)
110-
include_directories(${AVRESAMPLE_INCLUDE_DIRS})
111-
ENDIF (AVRESAMPLE_FOUND)
84+
foreach(ffmpeg_comp AVCODEC AVDEVICE AVFORMAT AVFILTER AVUTIL POSTPROC SWSCALE SWRESAMPLE AVRESAMPLE)
85+
if(${ffmpeg_comp}_FOUND)
86+
# Include FFmpeg headers (needed for compile)
87+
include_directories(${${ffmpeg_comp}_INCLUDE_DIRS})
88+
add_definitions(${${ffmpeg_comp}_DEFINITIONS})
89+
endif()
90+
endforeach()
11291

11392
################# LIBOPENSHOT-AUDIO ###################
11493
# Find JUCE-based openshot Audio libraries
@@ -119,38 +98,15 @@ include_directories(${LIBOPENSHOT_AUDIO_INCLUDE_DIRS})
11998

12099
################# QT5 ###################
121100
# Find QT5 libraries
122-
find_package(Qt5Widgets REQUIRED)
123-
find_package(Qt5Core REQUIRED)
124-
find_package(Qt5Gui REQUIRED)
125-
find_package(Qt5Multimedia REQUIRED)
126-
find_package(Qt5MultimediaWidgets REQUIRED)
127-
128-
# Include Qt headers (needed for compile)
129-
include_directories(${Qt5Widgets_INCLUDE_DIRS})
130-
include_directories(${Qt5Core_INCLUDE_DIRS})
131-
include_directories(${Qt5Gui_INCLUDE_DIRS})
132-
include_directories(${Qt5Multimedia_INCLUDE_DIRS})
133-
include_directories(${Qt5MultimediaWidgets_INCLUDE_DIRS})
134-
135-
add_definitions(${Qt5Widgets_DEFINITIONS})
136-
add_definitions(${Qt5Core_DEFINITIONS})
137-
add_definitions(${Qt5Gui_DEFINITIONS})
138-
add_definitions(${Qt5Multimedia_DEFINITIONS})
139-
add_definitions(${Qt5MultimediaWidgets_DEFINITIONS})
140-
141-
SET(QT_LIBRARIES ${Qt5Widgets_LIBRARIES}
142-
${Qt5Core_LIBRARIES}
143-
${Qt5Gui_LIBRARIES}
144-
${Qt5Multimedia_LIBRARIES}
145-
${Qt5MultimediaWidgets_LIBRARIES})
146-
147-
# Set compiler flags for Qt
148-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} ")
149-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ")
150-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ")
151-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Multimedia_EXECUTABLE_COMPILE_FLAGS} ")
152-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5MultimediaWidgets_EXECUTABLE_COMPILE_FLAGS} ")
153-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -ggdb ")
101+
foreach(qt_lib Qt5Widgets Qt5Core Qt5Gui Qt5Multimedia Qt5MultimediaWidgets)
102+
find_package(${qt_lib} REQUIRED)
103+
# Header files
104+
include_directories(${${qt_lib}_INCLUDE_DIRS})
105+
# Compiler definitions
106+
add_definitions(${${qt_lib}_DEFINITIONS})
107+
# Other CFLAGS
108+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${qt_lib}_EXECUTABLE_COMPILE_FLAGS}")
109+
endforeach()
154110

155111
# Manually moc Qt files
156112
qt5_wrap_cpp(MOC_FILES ${QT_HEADER_FILES})

0 commit comments

Comments
 (0)