aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-06-22 00:26:41 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-06-28 13:30:40 -0700
commit6c9d51451091470a6414a1e466a1f6f6d9b870ff (patch)
tree99f3de5bcfdf2494dbf6f22ebb82f00d8a638a8f
parent47d8d723160ed8596f9c84155c1e94631cbfbf7c (diff)
downloadvcpkg-6c9d51451091470a6414a1e466a1f6f6d9b870ff.tar.gz
vcpkg-6c9d51451091470a6414a1e466a1f6f6d9b870ff.zip
[angle] Initial commit with cmake buildsystem
-rw-r--r--ports/angle/CMakeLists.txt149
-rw-r--r--ports/angle/CONTROL4
-rw-r--r--ports/angle/portfile.cmake22
3 files changed, 175 insertions, 0 deletions
diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt
new file mode 100644
index 000000000..4f4138a05
--- /dev/null
+++ b/ports/angle/CMakeLists.txt
@@ -0,0 +1,149 @@
+cmake_minimum_required(VERSION 3.8)
+project(angle)
+
+add_compile_options(/d2guard4 /Wv:18 /WX)
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /guard:cf")
+
+add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DANGLE_STANDALONE_BUILD -DANGLE_ENABLE_DEBUG_ANNOTATIONS)
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/id/commit.h" "#define ANGLE_COMMIT_HASH \"invalid-hash\"\n#define ANGLE_COMMIT_HASH_SIZE 12\n#define ANGLE_COMMIT_DATE \"invalid-date\"\n")
+
+include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include)
+
+##########
+# numerics
+add_library(numerics INTERFACE)
+file(GLOB_RECURSE NUMERICS_SOURCES "src/common/third_party/numerics/*.h")
+target_sources(numerics INTERFACE ${NUMERICS_SOURCES})
+target_include_directories(numerics INTERFACE src/common/third_party/numerics)
+
+##########
+# angle_common
+file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" "src/common/*.inl" "src/common/*.cpp")
+list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|_linux|_mac")
+add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES} ${NUMERICS_SOURCES})
+target_link_libraries(angle_common PUBLIC numerics)
+
+##########
+# angle_image_util
+file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inl" "src/image_util/*.cpp")
+add_library(angle_image_util STATIC ${ANGLE_IMAGE_UTIL_SOURCES})
+target_link_libraries(angle_image_util PRIVATE angle_common)
+
+##########
+# translator
+file(GLOB TRANSLATOR_SOURCES
+ "src/compiler/translator/glslang.l"
+ "src/compiler/translator/glslang.y"
+ "src/compiler/translator/*.h"
+ "src/compiler/translator/*.cpp"
+ "src/third_party/compiler/ArrayBoundsClamper.cpp"
+)
+add_library(translator STATIC ${TRANSLATOR_SOURCES})
+target_compile_definitions(translator PUBLIC
+ -DANGLE_ENABLE_ESSL
+ -DANGLE_ENABLE_GLSL
+ -DANGLE_ENABLE_HLSL
+)
+target_link_libraries(translator PRIVATE angle_common)
+
+##########
+# preprocessor
+file(GLOB PREPROCESSOR_SOURCES
+ "src/compiler/preprocessor/*.h"
+ "src/compiler/preprocessor/*.cpp"
+)
+add_library(preprocessor STATIC ${PREPROCESSOR_SOURCES})
+target_link_libraries(preprocessor PRIVATE angle_common)
+
+##########
+# libANGLE
+file(GLOB LIBANGLE_SOURCES
+ "src/third_party/systeminfo/SystemInfo.cpp"
+ "src/third_party/murmurhash/MurmurHash3.cpp"
+ "src/common/event_tracer.cpp"
+
+ "src/libANGLE/*.cpp"
+ "src/libANGLE/*.inl"
+ "src/libANGLE/*.h"
+
+ "src/libANGLE/renderer/*.cpp"
+ "src/libANGLE/renderer/*.inl"
+ "src/libANGLE/renderer/*.h"
+
+ "src/libANGLE/renderer/gl/*.cpp"
+ "src/libANGLE/renderer/gl/*.inl"
+ "src/libANGLE/renderer/gl/*.h"
+
+ "src/libANGLE/renderer/gl/wgl/*.cpp"
+ "src/libANGLE/renderer/gl/wgl/*.inl"
+ "src/libANGLE/renderer/gl/wgl/*.h"
+
+ "src/libANGLE/renderer/vulkan/*.cpp"
+ "src/libANGLE/renderer/vulkan/*.inl"
+ "src/libANGLE/renderer/vulkan/*.h"
+
+ "src/libANGLE/renderer/null/*.cpp"
+ "src/libANGLE/renderer/null/*.inl"
+ "src/libANGLE/renderer/null/*.h"
+)
+file(GLOB_RECURSE LIBANGLE_D3D_SOURCES "src/libANGLE/renderer/d3d/*.h" "src/libANGLE/renderer/d3d/*.cpp" "src/libANGLE/renderer/d3d/*.inl")
+list(FILTER LIBANGLE_SOURCES EXCLUDE REGEX "_unittest")
+list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "_unittest|winrt")
+add_library(libANGLE STATIC ${LIBANGLE_SOURCES} ${LIBANGLE_D3D_SOURCES})
+# kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;odbc32.lib;odbccp32.lib;delayimp.lib;d3d9.lib;dxguid.lib
+find_library(D3D9_LIB NAMES d3d9)
+find_library(DXGUID_LIB NAMES dxguid)
+target_link_libraries(libANGLE PRIVATE angle_common angle_image_util translator ${D3D9_LIB} ${DXGUID_LIB} preprocessor)
+target_include_directories(libANGLE PRIVATE "src/third_party/khronos")
+target_compile_definitions(libANGLE PUBLIC
+ -DANGLE_ENABLE_D3D9
+ -DANGLE_ENABLE_D3D11
+ -DANGLE_ENABLE_OPENGL
+ -DANGLE_ENABLE_VULKAN
+ -DANGLE_ENABLE_NULL
+)
+target_compile_definitions(libANGLE PRIVATE -DLIBANGLE_IMPLEMENTATION)
+
+##########
+# libGLESv2
+file(GLOB LIBGLESV2_SOURCES "src/libGLESv2/*.h" "src/libGLESv2/*.cpp" "src/libGLESv2/libGLESv2.def")
+add_library(libGLESv2 ${LIBGLESV2_SOURCES})
+target_link_libraries(libGLESv2 PRIVATE angle_common libANGLE)
+target_compile_definitions(libGLESv2 PRIVATE
+ -DLIBGLESV2_IMPLEMENTATION
+ -DLIBANGLE_IMPLEMENTATION
+ -DGL_GLEXT_PROTOTYPES
+ "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }"
+ -DGL_APICALL=
+ -DEGLAPI=
+)
+
+##########
+# libEGL
+add_library(libEGL "src/libEGL/libEGL.def" "src/libEGL/libEGL.cpp" "src/libEGL/libEGL.rc" "src/libEGL/resource.h")
+target_link_libraries(libEGL PRIVATE angle_common libANGLE libGLESv2)
+target_compile_definitions(libEGL PRIVATE
+ -DLIBANGLE_IMPLEMENTATION
+ -DGL_GLEXT_PROTOTYPES
+ "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }"
+ -DGL_APICALL=
+ -DEGLAPI=
+)
+
+
+install(TARGETS libEGL libGLESv2
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ DIRECTORY include/
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.h"
+ PATTERN "GLSLANG" EXCLUDE
+ PATTERN "export.h" EXCLUDE
+ )
+endif()
diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL
new file mode 100644
index 000000000..4f5f8880d
--- /dev/null
+++ b/ports/angle/CONTROL
@@ -0,0 +1,4 @@
+Source: angle
+Version: 2017-06-14-8d471f
+Description: A conformant OpenGL ES implementation for Windows, Mac and Linux.
+ The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support.
diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake
new file mode 100644
index 000000000..1499fa623
--- /dev/null
+++ b/ports/angle/portfile.cmake
@@ -0,0 +1,22 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/angle
+ REF 8d471f907d8d4ec1d46bc9366493bd76c11c1870
+ SHA512 b9235d2a98330bc8533c3fe871129e7235c680420eac16610eae4ca7224c5284313ab6377f30ddfb8a2da39b69f3ef0d16023fe1e7cec3fc2198f4eb4bdccb26
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angle RENAME copyright)