no rule to make target for importing existing CMake project



  • I am trying to import a project with C++ files that I already built using cmake and makefile. I am trying to import it into QT creator. However, after importing the project and trying to debug it, I get the error "no rule to make target". However, the file it is referring to exists and I never had this problem with that file when using cmake. What is going on?


  • Lifetime Qt Champion

    Hi,

    How are you importing the project ?



  • I went to 'open file or project' and I then opened the .creator of the project


  • Lifetime Qt Champion

    Why not directly open the CMakeList.txt of your project ?



  • Even if I try to directly open the CMakeLists.txt, I get the same no rule to make target error



  • When I did Try File -> Open File or Project and select the existing CMakeLists.txt file in Project/src/Project/ and then had Qt Creator use cmake to build it, I get the error "CMake Error at CMakeLists.txt:165 (SetupBoost): Unknown CMake command "SetupBoost".


  • Lifetime Qt Champion

    SetupBoost ? Isn't that to build boost itself ?



  • SetupBoost.cmake is in ws/mke48/cmake/Project/CMake/SetupBoost.cmake

    I generated the makefile (before using Qt) by going to ws/mke48/cmake/Project/Build, running 'ccmake' with the CMakeLists in the root source folder, pressing 'c' for configure, 'g' to generate the makefiles, 'make', 'ccmake' again, setting PRE_BUILD to false/off, 'c' again, 'g' again, and 'make' again

    The contents for SetupBoost.cmake is below:

    [CODE]macro(IncludeBoost)
    set(Boost_FOUND FOUND)
    set(Boost_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/third-party/boost)
    endmacro(IncludeBoost)

    macro(find_boost)
    set(Boost_FOUND FOUND)
    set(Boost_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/third-party/boost)
    set(Boost_components thread date_time regex filesystem system program_options)
    endmacro(find_boost)

    macro(SetupBoost TargetName)

    message("Setting up boost for target ${TargetName}")

    set(Boost_FOUND FOUND)
    set(Boost_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/third-party/boost)

    if (NOT DEFINED Boost_USE_MULTITHREADED)

    set(Boost_LIBRARIES boost_thread-mt boost_date_time-mt boost_regex-mt boost_filesystem-mt boost_system-mt boost_program_options-mt)
    target_link_libraries(${TargetName} ${Boost_LIBRARIES})
    endmacro(SetupBoost)[/CODE]


  • Lifetime Qt Champion

    Are you sure Qt Creator is using the same cmake as you on the command line ?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.