[opencsg] Add new port (#5481)

* Add opencsg package

* Make opencsg static only

* Add patch for illegal character, fix line endings
This commit is contained in:
Hans L 2019-02-28 01:47:59 -06:00 committed by Phil Christensen
parent 91bb4183e1
commit 1073c3bf2b
4 changed files with 102 additions and 0 deletions

View File

@ -0,0 +1,46 @@
cmake_minimum_required (VERSION 3.4)
project (opencsg)
set(HEADERS
include/opencsg.h
)
set(SRCS
src/area.cpp
src/batch.cpp
src/context.cpp
src/channelManager.cpp
src/frameBufferObject.cpp
src/frameBufferObjectExt.cpp
src/occlusionQuery.cpp
src/opencsgRender.cpp
src/openglHelper.cpp
src/primitive.cpp
src/primitiveHelper.cpp
src/renderGoldfeather.cpp
src/renderSCS.cpp
src/scissorMemo.cpp
src/settings.cpp
src/stencilManager.cpp
src/pBufferTexture.cpp
RenderTexture/RenderTexture.cpp
)
add_library(opencsg ${SRCS} ${HEADERS})
include_directories(src include RenderTexture ".")
find_package(GLEW REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS})
target_link_libraries(opencsg PRIVATE GLEW::GLEW)
install(
TARGETS opencsg
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
if(NOT DISABLE_INSTALL_HEADERS)
install(FILES ${HEADERS} DESTINATION include/opencsg)
endif()

4
ports/opencsg/CONTROL Normal file
View File

@ -0,0 +1,4 @@
Source: opencsg
Version: 1.4.2
Build-Depends: glew
Description: OpenCSG is a library that does image-based CSG rendering using OpenGL. OpenCSG is written in C++ and supports most modern graphics hardware using Microsoft Windows or the Linux operating system.

View File

@ -0,0 +1,13 @@
diff --git a/include/opencsg.h b/include/opencsg.h
index d753a0e..b482c40 100644
--- a/include/opencsg.h
+++ b/include/opencsg.h
@@ -156,7 +156,7 @@ namespace OpenCSG {
/// The DepthComplexityAlgorithm specifies the strategy for profiting
/// from depth complexity when performing the CSG rendering.
/// - NoDepthComplexitySampling: Does not employ the depth complexity.
- /// This essentially makes the algorithm O(n²), but with
+ /// This essentially makes the algorithm O(n²), but with
/// low constant costs.
/// - DepthComplexitySampling: Calculates the depth complexity k using
/// the stencil buffer. This makes algorithm O(n*k), but

View File

@ -0,0 +1,39 @@
# Common Ambient Variables:
# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
# PORT = current port name (zlib, etc)
# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
#
include(vcpkg_common_functions)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO floriankirsch/OpenCSG
REF "opencsg-1-4-2-release"
SHA512 df117a1b7153a95332d236918d1547b0afe6f3ead46af2733c5feee6e25cec984b21affc41fd8320a45be9292bd3b32e21ed8bb3d08371ddd657f659b9bb932a
HEAD_REF master
PATCHES illegal_char.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS -DUNICODE=1 -D_UNICODE=1
# OPTIONS_RELEASE -DOPTIMIZE=1
OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencsg RENAME copyright)