find_package(PNG QUIET) find_package(OpenGL QUIET) find_package(Freetype QUIET) find_package(GLUT QUIET) find_package(GLEW QUIET) if(NOT ${GLUT_FOUND}) message(WARNING "GLUT NOT found, can't build FGPanel") set(WITH_FGPANEL 0) return() endif() if(NOT ${GLEW_FOUND}) message(WARNING "GLEW NOT found, can't build FGPanel") set(WITH_FGPANEL 0) return() endif() if((NOT PNG_FOUND) OR (NOT OPENGL_FOUND) OR (NOT FREETYPE_FOUND)) message(WARNING "FGPanel enabled, but some dependencies are missing") message(STATUS "libPNG: ${PNG_FOUND}") message(STATUS "OpenGL: ${OPENGL_FOUND}") message(STATUS "Freetype: ${FREETYPE_FOUND}") return() endif() find_path(BCMHOST_INCLUDE_DIR NAMES bcm_host.h PATHS /opt/vc/include NO_DEFAULT_PATH ) set(TARGET_SOURCES main.cxx ApplicationProperties.hxx ApplicationProperties.cxx FGCroppedTexture.hxx FGCroppedTexture.cxx FGDummyTextureLoader.hxx FGDummyTextureLoader.cxx FGFontCache.cxx FGFontCache.hxx FGGLApplication.cxx FGGLApplication.hxx FGGroupLayer.cxx FGGroupLayer.hxx FGInstrumentLayer.cxx FGInstrumentLayer.hxx FGLayeredInstrument.cxx FGLayeredInstrument.hxx FGPanel.cxx FGPanel.hxx FGPanelApplication.cxx FGPanelApplication.hxx FGPanelInstrument.cxx FGPanelInstrument.hxx FGPanelProtocol.cxx FGPanelProtocol.hxx FGPanelTransformation.cxx FGPanelTransformation.hxx FGPNGTextureLoader.cxx FGPNGTextureLoader.hxx FGRGBTextureLoader.cxx FGRGBTextureLoader.hxx FGSwitchLayer.cxx FGSwitchLayer.hxx FGTextLayer.cxx FGTextLayer.hxx FGTexturedLayer.cxx FGTexturedLayer.hxx panel_io.cxx panel_io.hxx GL_utils.cxx GL_utils.hxx ) add_executable(fgpanel ${TARGET_SOURCES}) target_link_libraries(fgpanel SimGearCore ${PNG_LIBRARIES} ${FREETYPE_LIBRARIES} OpenGL::GL ${GLUT_LIBRARIES} ${GLEW_LIBRARIES} ) target_include_directories(fgpanel PUBLIC ${FREETYPE_INCLUDE_DIRS} ${PNG_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS} ) if(MSVC) target_compile_definitions(fgpanel PUBLIC -DFREEGLUT_LIB_PRAGMAS=0 ) endif(MSVC) if(BCMHOST_INCLUDE_DIR) message(STATUS "found Raspberry Pi") add_executable(fgpanel-egl ${TARGET_SOURCES} GLES_utils.cxx GLES_utils.hxx ) target_include_directories(fgpanel-egl PUBLIC ${FREETYPE_INCLUDE_DIRS} ${PNG_INCLUDE_DIR} ${BCMHOST_INCLUDE_DIR} ${BCMHOST_INCLUDE_DIR}/interface/vcos/pthreads ${BCMHOST_INCLUDE_DIR}/interface/vmcs_host/linux ) target_link_libraries(fgpanel-egl SimGearCore ${PNG_LIBRARIES} ${FREETYPE_LIBRARIES} -lbrcmGLESv2 -lbrcmEGL -lm -lbcm_host -L/opt/vc/lib ) target_compile_definitions(fgpanel-egl PUBLIC -D_GLES2 -D_RPI ) target_compile_definitions(fgpanel PUBLIC -D_RPI ) message(STATUS "FGPanel (Raspberry Pi) : ENABLED") install(TARGETS fgpanel-egl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else(BCMHOST_INCLUDE_DIR) message(STATUS "FGPanel (Raspberry Pi) : DISABLED") endif(BCMHOST_INCLUDE_DIR) if(WITH_FGPANEL) message(STATUS "FGPanel : ENABLED") install(TARGETS fgpanel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else(WITH_FGPANEL) message(WARNING "FGPanel : DISABLED") endif(WITH_FGPANEL)