FindJUCE.cmake: Cannot specify sources for imported target “juce_core”

546 views Asked by At

I am trying to compile the hello world program. I have used the CMakeList provided by this link: https://github.com/remymuller/juce-cmake

I don't know what these errors mean and how to solve them. Please help.

CMakeLists.txt

$ cat CMakeLists.txt 
cmake_minimum_required(VERSION 3.0)

project(HelloWorld)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/home/sulakshana/Documents/evon/work/juce/helloworld/NewProject/juce-cmake/cmake/")

find_package(JUCE REQUIRED 
    COMPONENTS 
        juce_core
        juce_data_structures
        juce_events
        juce_graphics
        juce_gui_basics
        juce_gui_extra
)

set(SOURCES
    ../../Source/Main.cpp
    ../../Source/MainComponent.h
    ../../Source/MainComponent.cpp
)

add_executable(${PROJECT_NAME} ${SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE true)
target_link_libraries(${PROJECT_NAME} ${JUCE_LIBRARIES})
source_group(Source FILES ${SOURCES})

I have used this .cmake: https://github.com/remymuller/juce-cmake/blob/master/cmake/FindJUCE.cmake

Folder structure:

Here juce-cmake is the clone of the above linked repository:

$ ls
Builds  juce-cmake  JuceLibraryCode  NewProject.jucer  Source

Place of CMakeLists.txt:

/Builds/LinuxMakefile$ ls
build  buildCMake  CMakeLists.txt  Makefile

Errors:

$ cmake ..
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
  Cannot specify sources for imported target "juce_core".
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
  CMakeLists.txt:7 (find_package)


CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
  Cannot specify sources for imported target "juce_data_structures".
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
  CMakeLists.txt:7 (find_package)


CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
  Cannot specify sources for imported target "juce_events".
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:363 (juce_add_module)
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
  CMakeLists.txt:7 (find_package)


CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
  Cannot specify sources for imported target "juce_graphics".
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
  CMakeLists.txt:7 (find_package)


CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
  Cannot specify sources for imported target "juce_gui_basics".
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
  CMakeLists.txt:7 (find_package)


CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
  Cannot specify sources for imported target "juce_gui_extra".
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/AppConfig.h.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:264 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:501 (juce_generate_app_config)
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/JuceHeader.h.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:283 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:514 (juce_generate_juce_header)
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)


CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/sulakshana/Documents/evon/work/juce/helloworld/NewProject/Builds/LinuxMakefile/buildCMake/CMakeFiles/CMakeOutput.log".
1

There are 1 answers

4
Botje On BEST ANSWER

This module is relying on functionality that was added in CMake 3.11. Make sure you have at least that version.

The last set of errors is because you only copied the FindJUCE.cmake file but not the FindJuceTemplates directory that comes with it. I suggest cloning/downloading the entire repository into your working directory (or adding it as a Git submodule) and then including it. You may need to point CMAKE_MODULE_PATH to the subdirectory.