Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Unsolved qt creator Cmake how include libs ?

    General and Desktop
    cmake opengl lib
    2
    2
    102
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • timob256
      timob256 last edited by

      I want to add a library, but in qt6 there is no property "add library"

      I would like to add opengl

      CMakeLists.txt

      cmake_minimum_required(VERSION 3.5)
      
      project(line VERSION 0.1 LANGUAGES CXX)
      
      set(CMAKE_INCLUDE_CURRENT_DIR ON)
      
      set(CMAKE_AUTOUIC ON)
      set(CMAKE_AUTOMOC ON)
      set(CMAKE_AUTORCC ON)
      
      set(CMAKE_CXX_STANDARD 11)
      set(CMAKE_CXX_STANDARD_REQUIRED ON)
      
      find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
      find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
      find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
      
      set(PROJECT_SOURCES
              main.cpp
              myglwidget.cpp
              myglwidget.h
      )
      
      if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
          qt_add_executable(line
              MANUAL_FINALIZATION
              ${PROJECT_SOURCES}
          )
      # Define target properties for Android with Qt 6 as:
      #    set_property(TARGET zvezda2 APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
      #                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
      # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
      else()
          if(ANDROID)
              add_library(line SHARED
                  ${PROJECT_SOURCES}
              )
      # Define properties for Android with Qt 5 after find_package() calls as:
      #    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
          else()
              add_executable(line
                  ${PROJECT_SOURCES}
              )
          endif()
      endif()
      
      target_link_libraries(line PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
      target_link_libraries(line PRIVATE Qt6::OpenGLWidgets)
      
      set_target_properties(line PROPERTIES
          MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
          MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
          MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
      )
      
      if(QT_VERSION_MAJOR EQUAL 6)
          qt_finalize_executable(line)
      endif()
      

      in Qmake "add library" work

      work QMake

      TEMPLATE = app
      CONFIG += console c++11
      CONFIG -= app_bundle
      CONFIG -= qt
      
      SOURCES += \
              hemisphereMultidraw.cpp
      
      #-
      INCLUDEPATH += $$PWD/glfw_bin/include/GLFW/ \ # добавляем для удобства чтоб напрямую писать
                     $$PWD/glew_bin/include/GL/  \ # только название заголовчного файла без полного пути
                     $$PWD/stb_image/
      
      HEADERS += \
          glfw_bin/include/GLFW/glfw3.h \
          glfw_bin/include/GLFW/glfw3native.h \
          glew_bin/include/GL/glew.h \
      
      # --- linux ---
      
      unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/lib/x86_64-linux-gnu/ -lOpenGL
      
      INCLUDEPATH += $$PWD/../../../../../../../usr/include/GL
      DEPENDPATH += $$PWD/../../../../../../../usr/include/GL
      
      #- работает
      #unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/lib/x86_64-linux-gnu/ -lglut
      
      #INCLUDEPATH += $$PWD/../../../../../../../usr/include/GL
      #DEPENDPATH += $$PWD/../../../../../../../usr/include/GL
      #-
      unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/lib/x86_64-linux-gnu/ -lGLU
      
      INCLUDEPATH += $$PWD/../../../../../../../usr/include/GL
      DEPENDPATH += $$PWD/../../../../../../../usr/include/GL
      
      unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/lib/x86_64-linux-gnu/ -lGLEW
      
      INCLUDEPATH += $$PWD/../../../../../../../usr/include/GL
      DEPENDPATH += $$PWD/../../../../../../../usr/include/GL
      #- савлю новый фриглут
      unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/local/lib/ -lglut
      
      INCLUDEPATH += $$PWD/../../../../../../../usr/local/include/GL
      DEPENDPATH += $$PWD/../../../../../../../usr/local/include/GL
      
      1 Reply Last reply Reply Quote 0
      • M
        mchinand last edited by

        If it's a library that uses CMake, it's usually pretty straightforward. For glfw, which is one you appear to be using, see its CMake documentation

        1 Reply Last reply Reply Quote 2
        • First post
          Last post