aboutsummaryrefslogtreecommitdiff
path: root/ports/sfml
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-04-27 03:15:17 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-04-30 16:00:29 -0700
commit827c893b8e8224ca7c02a0d674fa9dba626aedb8 (patch)
tree8a290a154ed5fae7b66756af11f8064d6a334d6a /ports/sfml
parent286c400417e323693cba8c6f04c1be7898cc0e75 (diff)
downloadvcpkg-827c893b8e8224ca7c02a0d674fa9dba626aedb8.tar.gz
vcpkg-827c893b8e8224ca7c02a0d674fa9dba626aedb8.zip
[sfml] Support Linux
Diffstat (limited to 'ports/sfml')
-rw-r--r--ports/sfml/CMakeLists.txt115
-rw-r--r--ports/sfml/CONTROL4
-rw-r--r--ports/sfml/portfile.cmake29
3 files changed, 34 insertions, 114 deletions
diff --git a/ports/sfml/CMakeLists.txt b/ports/sfml/CMakeLists.txt
index e8e16edec..f6ab26235 100644
--- a/ports/sfml/CMakeLists.txt
+++ b/ports/sfml/CMakeLists.txt
@@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 2.6)
project(SFML)
-include_directories(${PROJECT_SOURCE_DIR}/include)
-include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(include)
+include_directories(src)
if(NOT BUILD_SHARED_LIBS)
add_definitions(-DSFML_STATIC)
@@ -13,110 +13,23 @@ add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
# import SFML's 'sfml_add_library' macro and find_package utils
set(VERSION_MAJOR 2)
-set(SFML_OS_WINDOWS ON)
+include(cmake/Config.cmake)
set(SFML_GENERATE_PDB ON)
-include(cmake/macros.cmake)
+include(cmake/Macros.cmake)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules/)
-# system module
+add_subdirectory(src/SFML/System)
+add_subdirectory(src/SFML/Window)
+add_subdirectory(src/SFML/Network)
+add_subdirectory(src/SFML/Audio)
+add_subdirectory(src/SFML/Graphics)
-file(GLOB SFML_SYSTEM_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/System/*.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/System/Win32/*cpp)
-
-sfml_add_library(sfml-system
- SOURCES ${SFML_SYSTEM_SOURCES}
- EXTERNAL_LIBS winmm)
-
-# window module
-
-file(GLOB SFML_WINDOW_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/*.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/Win32/*cpp)
-
-list(REMOVE_ITEM SFML_WINDOW_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/EGLCheck.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/EglContext.cpp)
-
-sfml_add_library(sfml-window
- SOURCES ${SFML_WINDOW_SOURCES}
- DEPENDS sfml-system
- EXTERNAL_LIBS winmm gdi32 opengl32)
-
-# network module
-
-file(GLOB SFML_NETWORK_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Network/*.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/Network/Win32/*cpp)
-
-sfml_add_library(sfml-network
- SOURCES ${SFML_NETWORK_SOURCES}
- DEPENDS sfml-system
- EXTERNAL_LIBS ws2_32)
-
-# audio module
-
-file(GLOB SFML_AUDIO_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Audio/*.cpp)
-
-find_package(OpenAL REQUIRED)
-find_package(Vorbis REQUIRED)
-find_package(FLAC REQUIRED)
-
-sfml_add_library(sfml-audio
- SOURCES ${SFML_AUDIO_SOURCES}
- DEPENDS sfml-system
- EXTERNAL_LIBS ${OPENAL_LIBRARY} ${VORBIS_LIBRARIES} ${FLAC_LIBRARY})
-
-target_include_directories(sfml-audio SYSTEM PRIVATE ${OPENAL_INCLUDE_DIR})
-target_include_directories(sfml-audio SYSTEM PRIVATE ${VORBIS_INCLUDE_DIRS})
-target_include_directories(sfml-audio SYSTEM PRIVATE ${FLAC_INCLUDE_DIR})
-
-# graphics module
-
-file(GLOB SFML_GRAPHICS_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Graphics/*.cpp)
-
-find_package(JPEG REQUIRED)
-find_package(Freetype REQUIRED) # fails to find debug lib
-if(CMAKE_BUILD_TYPE MATCHES Debug)
- find_library(FREETYPE_DEBUG_LIBRARY freetyped)
- set(FREETYPE_ACTUAL_LIBRARY ${FREETYPE_DEBUG_LIBRARY})
-else()
- set(FREETYPE_ACTUAL_LIBRARY ${FREETYPE_LIBRARY})
+if(WIN32)
+ set(LIB_SUFFIX /manual-link)
+ add_subdirectory(src/SFML/Main)
+ unset(LIB_SUFFIX)
endif()
-find_path(STB_HEADERS stb_image.h)
-
-sfml_add_library(sfml-graphics
- SOURCES ${SFML_GRAPHICS_SOURCES}
- DEPENDS sfml-system sfml-window
- EXTERNAL_LIBS ${FREETYPE_ACTUAL_LIBRARY} ${JPEG_LIBRARY} opengl32)
-
-target_include_directories(sfml-graphics SYSTEM PRIVATE ${STB_HEADERS})
-target_include_directories(sfml-graphics SYSTEM PRIVATE ${FREETYPE_INCLUDE_DIRS})
-target_include_directories(sfml-graphics SYSTEM PRIVATE ${JPEG_INCLUDE_DIR})
-set_target_properties(sfml-graphics PROPERTIES COMPILE_FLAGS -DSTBI_FAILURE_USERMSG)
-
-# main module
-
-add_library(sfml-main STATIC ${PROJECT_SOURCE_DIR}/src/SFML/Main/MainWin32.cpp)
-set_target_properties(sfml-main PROPERTIES DEBUG_POSTFIX -d)
-install(TARGETS sfml-main ARCHIVE DESTINATION lib)
-
-# headers
if(NOT DEFINED SFML_SKIP_HEADERS)
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include)
+ install(DIRECTORY include/ DESTINATION include)
endif()
-
-# log linked libraries
-
-message(STATUS "Link-time dependencies:")
-message(STATUS " " ${VORBIS_LIBRARY})
-message(STATUS " " ${VORBISFILE_LIBRARY})
-message(STATUS " " ${VORBISENC_LIBRARY})
-message(STATUS " " ${OGG_LIBRARY})
-message(STATUS " " ${OPENAL_LIBRARY})
-message(STATUS " " ${FLAC_LIBRARY})
-message(STATUS " " ${FREETYPE_ACTUAL_LIBRARY})
-message(STATUS " " ${JPEG_LIBRARY})
diff --git a/ports/sfml/CONTROL b/ports/sfml/CONTROL
index 778638482..e27af6646 100644
--- a/ports/sfml/CONTROL
+++ b/ports/sfml/CONTROL
@@ -1,4 +1,4 @@
Source: sfml
-Version: 2.4.2-2
+Version: 2.4.2-3
Description: Simple and fast multimedia library
-Build-Depends: freetype, libflac, libjpeg-turbo, libogg, libvorbis, openal-soft, stb
+Build-Depends: freetype, libflac, libjpeg-turbo, libogg, libvorbis, openal-soft, stb, freeglut (!uwp&&!windows)
diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake
index ea4cfd138..974383eb4 100644
--- a/ports/sfml/portfile.cmake
+++ b/ports/sfml/portfile.cmake
@@ -1,19 +1,24 @@
include(vcpkg_common_functions)
vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
- REPO "sfml/sfml"
- REF "2.4.2"
+ REPO SFML/SFML
+ REF 2.4.2
HEAD_REF master
- SHA512 8acfdf320939c953a9a3413398f82d02d68a56a337f1366c2677c14ce032baa8ba059113ac3c91bb6e6fc22eef119369a265be7ef6894526e6a97a01f37e1972)
-
+ SHA512 8acfdf320939c953a9a3413398f82d02d68a56a337f1366c2677c14ce032baa8ba059113ac3c91bb6e6fc22eef119369a265be7ef6894526e6a97a01f37e1972
+)
file(REMOVE_RECURSE ${SOURCE_PATH}/extlibs)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev mesa-common-dev")
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS_DEBUG
- -DSFML_SKIP_HEADERS=ON)
+ OPTIONS_DEBUG
+ -DSFML_SKIP_HEADERS=ON
+)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
@@ -24,13 +29,15 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
endif()
# move sfml-main to manual link dir
-file(COPY ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib)
-file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib)
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib)
+ file(COPY ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib)
+ file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib)
+endif()
# At the time of writing, HEAD has license.md instead of license.txt
-if (VCPKG_HEAD_VERSION)
+if(VCPKG_HEAD_VERSION)
file(INSTALL ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright)
else()
file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright)