cmake_minimum_required(VERSION 3.16) project(planets-qml LANGUAGES CXX) set(CMAKE_AUTOMOC ON) if(NOT DEFINED INSTALL_EXAMPLESDIR) set(INSTALL_EXAMPLESDIR "examples") endif() set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}") find_package(Qt6 REQUIRED COMPONENTS 3DCore 3DInput 3DQuick 3DQuickExtras 3DQuickInput 3DQuickRender 3DRender Concurrent Core Gui Network Qml Quick) qt_add_executable(planets-qml main.cpp networkcontroller.cpp networkcontroller.h ) set_target_properties(planets-qml PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) target_link_libraries(planets-qml PUBLIC Qt::3DCore Qt::3DInput Qt::3DQuick Qt::3DQuickExtras Qt::3DQuickInput Qt::3DQuickRender Qt::3DRender Qt::Concurrent Qt::Core Qt::Gui Qt::Network Qt::Qml Qt::Quick ) # Resources: set(planets-qml_resource_files "AppleTVInput.qml" "FpsDisplay.qml" "InfoSheet.qml" "Planet.qml" "PlanetButton.qml" "PlanetEffect.qml" "PlanetFrameGraph.qml" "PlanetMaterial.qml" "PlanetsLight.qml" "PlanetsMain.qml" "Ring.qml" "ShadowEffect.qml" "SolarSystem.qml" "StyledSlider.qml" "SunEffect.qml" "meshes/ring.obj" "meshes/starfield.obj" "planets.js" "shaders/es2/planetD.frag" "shaders/es2/planetD.vert" "shaders/es2/planetDB.frag" "shaders/es2/planetDB.vert" "shaders/es2/planetDS.frag" "shaders/es2/planetDSB.frag" "shaders/es2/sun.frag" "shaders/es2/sun.vert" "shaders/gl3/planetD.frag" "shaders/gl3/planetD.vert" "shaders/gl3/planetDB.frag" "shaders/gl3/planetDB.vert" "shaders/gl3/planetDS.frag" "shaders/gl3/planetDSB.frag" "shaders/gl3/planetDShadow.frag" "shaders/gl3/planetDShadow.vert" "shaders/gl3/shadowmap.frag" "shaders/gl3/shadowmap.vert" "shaders/gl3/sun.frag" "shaders/gl3/sun.vert" "shaders/rhi/planetD.frag" "shaders/rhi/planetD.vert" "shaders/rhi/planetDB.frag" "shaders/rhi/planetDB.vert" "shaders/rhi/planetDS.frag" "shaders/rhi/planetDSB.frag" "shaders/rhi/planetDShadow.frag" "shaders/rhi/planetDShadow.vert" "shaders/rhi/shadowmap.frag" "shaders/rhi/shadowmap.vert" "shaders/rhi/sun.frag" "shaders/rhi/sun.vert" ) qt6_add_resources(planets-qml "planets-qml" PREFIX "/" FILES ${planets-qml_resource_files} ) set(planets-qml-images_resource_files "images/earth.png" "images/jupiter.png" "images/mars.png" "images/mercury.png" "images/nasa/uranusringcolortrans.png" "images/neptune.png" "images/saturn.png" "images/solarsystemscope/earthcloudmapcolortrans.png" "images/solarsystemscope/earthcloudmapspec.jpg" "images/solarsystemscope/earthmap2k.jpg" "images/solarsystemscope/earthnormal2k.jpg" "images/solarsystemscope/earthspec2k.jpg" "images/solarsystemscope/galaxy_starfield.jpg" "images/solarsystemscope/jupitermap.jpg" "images/solarsystemscope/license.txt" "images/solarsystemscope/marsmap2k.jpg" "images/solarsystemscope/marsnormal2k.jpg" "images/solarsystemscope/mercurymap.jpg" "images/solarsystemscope/mercurynormal.jpg" "images/solarsystemscope/moonmap2k.jpg" "images/solarsystemscope/moonnormal2k.jpg" "images/solarsystemscope/neptunemap.jpg" "images/solarsystemscope/saturnmap.jpg" "images/solarsystemscope/saturnringcolortrans.png" "images/solarsystemscope/sunmap.jpg" "images/solarsystemscope/uranusmap.jpg" "images/solarsystemscope/venusmap.jpg" "images/solarsystemscope/venusnormal.jpg" "images/sun.png" "images/uranus.png" "images/venus.png" ) qt6_add_resources(planets-qml "planets-qml-images" PREFIX "/" FILES ${planets-qml-images_resource_files} ) install(TARGETS planets-qml RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" )