У меня есть проект со следующей структурой:CMake - поиск внешних библиотек
projectName-master/
data/
source/
thirdparty/ (here is placed FindSFML.cmake file)
.gitignore
CMakeLists.txt
README.md
SOURCES.md
TODO.md
Я использую CMake 2.8.11.1 (CMake-GUI) для создания Visual Studio SLN файла. Дорожки устанавливаются таким образом:
- где находится исходный код: E:/Projectname-мастер
- где строить двоичные файлы: E:/Projectname-мастер/источник (1.Can выбрать другой каталог или он должен быть установлен в каталог, который содержит исходные файлы: h, cpp и т. д.?)
Далее я выбираю: Configure -> «Указать генератор для этого проекта = Visual Studio 11, Использовать собственные компиляторы по умолчанию» - > Отделка
Затем я получаю информацию: ошибка в процессе настройки, проект Файлы могут быть неправильными
Cmake Gui содержит следующие сведения:
Имя: CMAKE_INSTALL_PREFIX Значение C:/Program Files (x86)/Projectname Имя: SFML_INCLUDE_DIR Значение SFML_INCLUDE_DIR-NOTFOUND
CMake Error at thirdparty/FindSFML.cmake:165 (message):
Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
SFML_AUDIO_LIBRARY SFML_NETWORK_LIBRARY SFML_GRAPHICS_LIBRARY)
Call Stack (most recent call first):
CMakeLists.txt:63 (find_package)
Я загрузил SFML и установил SFML_INCLUDE_DIR (в CMake Gui): C: /OpenGL/SFML-2.1/include/SFML, но я все еще получаю эту ошибку. 2. Как это исправить? Как насчет файлов lib и dll?
Edit1: Я скачал SFML из official site
FindSFML.cmake из проекта не содержит записи SFML_ROOT, но SFML_INCLUDE_DIR выглядит следующим образом:
# find the SFML include directory
find_path(SFML_INCLUDE_DIR SFML/Config.hpp
PATH_SUFFIXES include
PATHS
${SFMLDIR}
$ENV{SFMLDIR}
~/Library/Frameworks
/Library/Frameworks
/usr/local/
/usr/
/sw # Fink
/opt/local/ # DarwinPorts
/opt/csw/ # Blastwave
/opt/)
Так как установить SFML_ROOT? Нужно ли добавлять некоторые записи (записи) к этому файлу? Как это будет выглядеть?
Edit2: Часть новой FindSFML.cmake с пути к SFML (C: /OpenGL/SFML-2.1/)
find_path(SFML_INCLUDE_DIR SFML/Config.hpp
PATH_SUFFIXES include
PATHS
${SFML_ROOT}
$ENV{SFML_ROOT}
C:/OpenGL/SFML-2.1/
~/Library/Frameworks
/Library/Frameworks
/usr/local/
/usr/
/sw # Fink
/opt/local/ # DarwinPorts
/opt/csw/ # Blastwave
/opt/)
Пожалуйста, см. Edit1 – Irbis
Я добавил в проект новое приложение FindSFML.cmake с пути к SFML - Edit2. Это то, что вы имели ввиду ? – Irbis
Но как и где я должен определить SFML_ROOT? Я использую CMake-Gui. – Irbis