Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • backtracking
  • vis
  • pure_wfc
  • plain_sudoku
5 results

CMakeLists.txt

Blame
  • CMakeLists.txt 1.77 KiB
    cmake_minimum_required(VERSION 3.5)
    
    project(sodoku_solver 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 17)
    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(Qt${QT_VERSION_MAJOR} COMPONENTS Concurrent REQUIRED)
    
    set(PROJECT_SOURCES
            main.cpp
            window.h
            window.cpp
            cell.h
            cell.cpp
    )
    
    if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
        qt_add_executable(sodoku_solver
            MANUAL_FINALIZATION
            ${PROJECT_SOURCES}
        )
    # Define target properties for Android with Qt 6 as:
    #    set_property(TARGET sodoku_solver 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(sodoku_solver 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(sodoku_solver
                ${PROJECT_SOURCES}
            )
        endif()
    endif()
    
    target_link_libraries(sodoku_solver PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
    target_link_libraries(sodoku_solver PRIVATE Qt${QT_VERSION_MAJOR}::Concurrent)
    
    set_target_properties(sodoku_solver 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(sodoku_solver)
    endif()