cmake_minimum_required(VERSION 3.13.4) set (VOMP_OBJ_COMMON util.cc control.cc thread.cc timers.cc i18n.cc udp4.cc udp6.cc vdpc.cc tcp.cc message.cc messagequeue.cc wol.cc audio.cc video.cc vdr.cc recman.cc recording.cc recinfo.cc channel.cc rectimer.cc event.cc directory.cc mark.cc option.cc vfeed.cc afeed.cc demuxer.cc demuxervdr.cc demuxerts.cc stream.cc osd.cc surface.cc region.cc colour.cc boxstack.cc boxx.cc tbboxx.cc vrecording.cc vinfo.cc vquestion.cc vrecordinglist.cc vrecordinglistclassic.cc vrecordinglistadvanced.cc vepgsummary.cc vepglistadvanced.cc vmute.cc vvolume.cc vtimerlist.cc vtimeredit.cc vrecordingmenu.cc vchannellist.cc vwelcome.cc vvideorec.cc vepgsettimer.cc vchannelselect.cc vserverselect.cc vconnect.cc vepg.cc vrecmove.cc vradiorec.cc vaudioselector.cc vscreensaver.cc vopts.cc wselectlist.cc wjpeg.cc wsymbol.cc wbutton.cc wtextbox.cc woptionpane.cc woptionbox.cc wremoteconfig.cc wtabbar.cc led.cc inputman.cc input.cc inputudp.cc inputlirc.cc vpicturebanner.cc abstractoption.cc eventdispatcher.cc vdrrequestpacket.cc vdrresponsepacket.cc vvideolivetv.cc sleeptimer.cc wprogressbar.cc bitmap.cc dvbsubtitles.cc tfeed.cc vteletextview.cc teletextdecodervbiebu.cc teletxt/txtfont.cc movieinfo.cc seriesinfo.cc wmovieview.cc wseriesview.cc wtvmedia.cc wpictureview.cc osdvector.cc surfacevector.cc buffer.cc config.cc log.cc playervideorec.cc playervideolive.cc playerradiolive.cc playerradiorec.cc imageloader.cc image.cc ) set (VOMP_OBJ_RASPBERRY main.cc threadp.cc osdopenvg.cc ledraspberry.cc videoomx.cc audioomx.cc imageomx.cc wjpegsimple.cc inputlinux.cc inputcec.cc omx/omx.cc omx/omximagedecode.cc omx/omxeglrender.cc imageomx2.cc ) # #OBJ_WINDOWS = winmain.o threadwin.o inputwin.o ledwin.o videowin.o \ # audiowin.o windowsosd.o dsallocator.o dssourcefilter.o dssourcepin.o \ # wwinvideofilter.o wwinvideoh264filter.o wwinaudiofilter.o \ # wwinmp3audiofilter.o wjpegsimple.o # #OBJ_WINLEGACY = osdwinpixel.o surfacewin.o \ # fonts/helvB24.o fonts/helvB18.o # #OBJ_WINCURRENT = osdwinvector.o # set (PNG_FILES other/vdrhires.png other/wallpaper720p.jpg other/properties.png other/radio.png other/timers.png other/tv.png other/recordings.png other/restart.png other/hd1080i.png other/hd720p.png other/sd576i.png other/txtoff.png other/txton.png other/dolbyoff.png other/dolbyon.png other/recording.png other/recfolder.png other/defposter.png ) project(vomp) add_executable(vomp ${VOMP_OBJ_COMMON} ${VOMP_OBJ_RASPBERRY} pngs.o) # set(CMAKE_CXX_COMPILER_LAUNCHER "distcc") - not until cmake 3.17! if (${ENABLE_MOLD}) target_link_options(vomp PRIVATE "-fuse-ld=${MOLD_BIN}") endif() set(CMAKE_BUILD_TYPE Debug) target_compile_options(vomp PRIVATE -O0) set_property(TARGET vomp PROPERTY CXX_STANDARD 14) find_path(INC_VC bcm_host.h PATHS /opt/vc/include) find_path(INC_FT2 ft2build.h PATHS /usr/include/freetype2) find_path(INC_MAGICK Magick++.h PATHS /usr/include/ImageMagick-6) find_path(INC_MAGICK2 magick/magick-baseconfig.h PATHS /usr/include/arm-linux-gnueabihf/ImageMagick-6) target_include_directories(vomp SYSTEM PRIVATE ${INC_VC} ${INC_FT2} ${INC_MAGICK} ${INC_MAGICK2}) target_compile_options(vomp PRIVATE -Werror=return-type -Wall -Wextra -Wshadow -Wmissing-declarations -Winit-self -Woverloaded-virtual -Wmissing-format-attribute -Wdisabled-optimization -Wmissing-noreturn ) if (${ALL_WARNINGS}) target_compile_options(vomp PRIVATE -Wold-style-cast -Wconversion) endif() if (${FORCE_COLOR}) target_compile_options(vomp PRIVATE -fdiagnostics-color=always) endif() target_compile_options(vomp PRIVATE -D_GNU_SOURCE -DIPV4 -DIPV6 -DVOMP_PLATFORM_RASPBERRY -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DDEV) target_link_libraries(vomp pthread stdc++ rt brcmEGL brcmOpenVG openmaxil bcm_host avformat avcodec fmt avutil swresample m dl fontconfig freetype Magick++-6.Q16 MagickWand-6.Q16 MagickCore-6.Q16 jsoncpp) target_link_directories(vomp PRIVATE ${CMAKE_SYSROOT}/opt/vc/lib ${CMAKE_SYSROOT}/usr/lib/arm-linux-gnueabihf) add_custom_command( OUTPUT pngs.o WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMENT pngs.o COMMAND ${CMAKE_LINKER} -r -b binary -o ../build/pngs.o ${PNG_FILES} )