Использование cmake для компиляции glfw на windows - PullRequest
0 голосов
/ 07 сентября 2018

Я не знал, как это назвать, это довольно неточно.В любом случае, вот вопрос:

Я хочу создать проект CMake в Visual Studio, который должен использовать glfw.Однако я не хочу использовать предварительно скомпилированные двоичные файлы, я хочу скомпилировать glfw вместе с моим приложением, используя файл CMakeLists.txt.

Вот мой файл CMake:

# CMakeList.txt : CMake project for BasicMandelbrotAnimation, include source and define
# project specific logic here.
#
cmake_minimum_required (VERSION 3.8)
project(BasicMandelbrotAnimation)

# Set the main file to main.cpp
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ENTRY:mainCRTStartup")

# Include our different directories
include_directories(include)
include_directories(source)

# Include all source files in source directory
file(GLOB SOURCE source/*)

# Compile GLFW
add_subdirectory(extlibs/GLFW)

# CMake GLFW Settings
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)

# Add source to this project's executable.
add_executable (${PROJECT_NAME} ${SOURCE})
target_link_libraries(${PROJECT_NAME} glfw)

find_package(OpenGL REQUIRED)

target_include_directories(${PROJECT_NAME} PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${OPENGL_gl_LIBRARY})
target_link_libraries(${PROJECT_NAME} ${OPENGL_glu_LIBRARY})

# TODO: Add tests and install targets if needed.

я получаю сообщение об ошибке: «Не удается открыть включаемый файл:« unistd.h »: такого файла или каталога нет», что вызывает у меня проблемы, поскольку это файл UNIX, так как я могу адаптировать файлы для компиляции в Windows?

Спасибо.

РЕДАКТИРОВАТЬ:

Этот вопрос казался дубликатом, но на самом деле это не так.unistd.h - это только первая проблема, давайте посмотрим на проблемный файл:

#ifndef _glfw3_x11_platform_h_
#define _glfw3_x11_platform_h_

#include <unistd.h>
#include <signal.h>
#include <stdint.h>
#include <dlfcn.h>

#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/Xcursor/Xcursor.h>

// The XRandR extension provides mode setting and gamma control
#include <X11/extensions/Xrandr.h>

// The Xkb extension provides improved keyboard support
#include <X11/XKBlib.h>

// The Xinerama extension provides legacy monitor indices
#include <X11/extensions/Xinerama.h>

#if defined(_GLFW_HAS_XF86VM)
 // The Xf86VidMode extension provides fallback gamma control
 #include <X11/extensions/xf86vmode.h>
#endif

Здесь, во-первых, отсутствует unistdh, я заменяю его тем, что было предложено в другом посте,но теперь отсутствуют другие, в частности файлы dlfcn.h и X11, и я не знаю, как это исправить.

Спасибо.

EDIT2:

Забудьте, что находится внутри x11_platform.h.Проблема в этой строке:

target_link_libraries(${PROJECT_NAME} glfw)

при этом cmake нужен x11_platform.h, которого нет в windows.Кто-нибудь знает, как пропустить этот файл или ссылку по-другому?

Спасибо.

...