diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2016-12-07 22:00:07 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-07 22:00:07 -0800 |
| commit | ebe2ce7281cc81108718add33abaf62ff78b6619 (patch) | |
| tree | 3c820c25cc7e68b8f76050dd1a9e50cababca9d7 | |
| parent | 0d81422f34431e707a1bf7bfc16156f76bd608c3 (diff) | |
| parent | 040555ee81c0a70509e635f060836b7656fc4f36 (diff) | |
| download | vcpkg-ebe2ce7281cc81108718add33abaf62ff78b6619.tar.gz vcpkg-ebe2ce7281cc81108718add33abaf62ff78b6619.zip | |
Merge pull request #403 from codicodi/add-sfml
[sfml] intial commit
| -rw-r--r-- | ports/sfml/CMakeLists.txt | 122 | ||||
| -rw-r--r-- | ports/sfml/CONTROL | 4 | ||||
| -rw-r--r-- | ports/sfml/portfile.cmake | 34 |
3 files changed, 160 insertions, 0 deletions
diff --git a/ports/sfml/CMakeLists.txt b/ports/sfml/CMakeLists.txt new file mode 100644 index 000000000..e8e16edec --- /dev/null +++ b/ports/sfml/CMakeLists.txt @@ -0,0 +1,122 @@ +cmake_minimum_required(VERSION 2.6) +project(SFML) + +include_directories(${PROJECT_SOURCE_DIR}/include) +include_directories(${PROJECT_SOURCE_DIR}/src) + +if(NOT BUILD_SHARED_LIBS) + add_definitions(-DSFML_STATIC) +endif() +add_definitions(-DUNICODE -D_UNICODE) +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) +set(SFML_GENERATE_PDB ON) +include(cmake/macros.cmake) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules/) + +# system module + +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}) +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) +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 new file mode 100644 index 000000000..175aaa0ab --- /dev/null +++ b/ports/sfml/CONTROL @@ -0,0 +1,4 @@ +Source: sfml
+Version: 2.4.1
+Description: Simple and fast multimedia library
+Build-Depends: freetype, libflac, libjpeg-turbo, libogg, libvorbis, openal-soft, stb
diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake new file mode 100644 index 000000000..916b033ef --- /dev/null +++ b/ports/sfml/portfile.cmake @@ -0,0 +1,34 @@ +
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SFML-2.4.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.sfml-dev.org/files/SFML-2.4.1-sources.zip"
+ FILENAME "SFML-2.4.1-sources.zip"
+ SHA512 e2a49927e1db6ab94fa52b88460782fa2b28ccd4a8c75793e10c7669b24736f63aab723c2e1d8befc96f6f5cf4ed185f13da2550da721d206780003f158e5507)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/extlibs)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG
+ -DSFML_SKIP_HEADERS=ON)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# don't force users to define SFML_STATIC while using static library
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(APPEND ${CURRENT_PACKAGES_DIR}/include/SFML/Config.hpp "#undef SFML_API_IMPORT\n#define SFML_API_IMPORT\n")
+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)
+
+file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/sfml/license.txt ${CURRENT_PACKAGES_DIR}/share/sfml/copyright)
|
