aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormyd7349 <myd7349@gmail.com>2020-01-16 08:46:35 +0800
committerVictor Romero <romerosanchezv@gmail.com>2020-01-15 16:46:35 -0800
commitb2f7823dd22b5155e55e3006e85187230ce0bb07 (patch)
tree618cc79d81c09f9b92a48ba9893f33001f069336
parent6f41e5cc7c57abaa22f1c6d2235ead83cdf7c5b3 (diff)
downloadvcpkg-b2f7823dd22b5155e55e3006e85187230ce0bb07.tar.gz
vcpkg-b2f7823dd22b5155e55e3006e85187230ce0bb07.zip
[glui] Add new port (#9155)
* [glui] Add new port * [freeglut] Fix static linking * [glui] Fix description * [glui] Update
-rw-r--r--ports/freeglut/CONTROL2
-rw-r--r--ports/freeglut/portfile.cmake8
-rw-r--r--ports/glui/CONTROL5
-rw-r--r--ports/glui/install-one-flavor.patch70
-rw-r--r--ports/glui/portfile.cmake37
-rw-r--r--ports/glui/vcpkg-cmake-wrapper.cmake9
6 files changed, 130 insertions, 1 deletions
diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL
index 7489109c4..5f42478d8 100644
--- a/ports/freeglut/CONTROL
+++ b/ports/freeglut/CONTROL
@@ -1,4 +1,4 @@
Source: freeglut
-Version: 3.0.0-7
+Version: 3.0.0-8
Homepage: https://sourceforge.net/projects/freeglut/
Description: Open source implementation of GLUT with source and binary backwards compatibility.
diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake
index bec7489b8..bb22ac684 100644
--- a/ports/freeglut/portfile.cmake
+++ b/ports/freeglut/portfile.cmake
@@ -32,6 +32,14 @@ string(REGEX REPLACE "\"freeglut_static.lib\""
"\"freeglut.lib\"" FREEGLUT_STDH "${FREEGLUT_STDH}")
string(REGEX REPLACE "\"freeglut_staticd.lib\""
"\"freeglutd.lib\"" FREEGLUT_STDH "${FREEGLUT_STDH}")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ string(REPLACE
+ "ifdef FREEGLUT_STATIC"
+ "if 1 //ifdef FREEGLUT_STATIC"
+ FREEGLUT_STDH
+ "${FREEGLUT_STDH}"
+ )
+endif()
file(WRITE ${SOURCE_PATH}/include/GL/freeglut_std.h "${FREEGLUT_STDH}")
vcpkg_configure_cmake(
diff --git a/ports/glui/CONTROL b/ports/glui/CONTROL
new file mode 100644
index 000000000..c4451d61a
--- /dev/null
+++ b/ports/glui/CONTROL
@@ -0,0 +1,5 @@
+Source: glui
+Version: 2019-11-30
+Description: GLUI is a GLUT-based C++ user interface library
+Homepage: https://github.com/libglui/glui
+Build-Depends: freeglut
diff --git a/ports/glui/install-one-flavor.patch b/ports/glui/install-one-flavor.patch
new file mode 100644
index 000000000..fb66d92c7
--- /dev/null
+++ b/ports/glui/install-one-flavor.patch
@@ -0,0 +1,70 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c0f7d32..8446f3c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -59,6 +59,22 @@ target_include_directories(glui_obj
+ # create static *and* shared libraries without double compilation
+ set_target_properties( glui_obj PROPERTIES POSITION_INDEPENDENT_CODE 1)
+
++if (MSVC)
++ target_compile_options(glui_obj
++ PRIVATE
++ /D_CRT_SECURE_NO_WARNINGS
++ /wd4244
++ /wd4305
++ )
++endif()
++
++if(BUILD_SHARED_LIBS)
++ if(WIN32)
++ target_compile_definitions(glui_obj
++ PRIVATE GLUI_BUILDING_LIB
++ PUBLIC GLUIDLL
++ )
++ endif()
+ add_library(glui SHARED $<TARGET_OBJECTS:glui_obj>)
+ target_include_directories(glui
+ PUBLIC
+@@ -71,7 +87,7 @@ set_target_properties(glui PROPERTIES
+ DEBUG_POSTFIX "d"
+ VERSION ${PROJECT_VERSION}
+ SOVERSION ${PROJECT_VERSION})
+-
++else()
+ add_library(glui_static STATIC $<TARGET_OBJECTS:glui_obj>)
+ target_include_directories(glui_static
+ PUBLIC
+@@ -81,7 +97,9 @@ target_include_directories(glui_static
+ ${GLUT_INCLUDE_DIR})
+ target_link_libraries(glui_static PUBLIC ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES})
+ set_target_properties(glui_static PROPERTIES DEBUG_POSTFIX "d")
++endif()
+
++if(GLUI_BUILD_EXAMPLES)
+ add_executable(ppm2array tools/ppm.cpp tools/ppm2array.cpp)
+ target_link_libraries(ppm2array)
+
+@@ -97,7 +115,7 @@ add_executable(example5 example/example5.cpp)
+ target_link_libraries(example5 glui_static ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES})
+ add_executable(example6 example/example6.cpp)
+ target_link_libraries(example6 glui_static ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES})
+-
++endif()
+
+
+ ####
+@@ -130,8 +148,13 @@ configure_package_config_file(
+ )
+
+ # Targets:
++if(BUILD_SHARED_LIBS)
++ set(glui_target glui)
++else()
++ set(glui_target glui_static)
++endif()
+ install(
+- TARGETS glui_static glui
++ TARGETS ${glui_target}
+ EXPORT "${targets_export_name}"
+ LIBRARY DESTINATION "lib"
+ ARCHIVE DESTINATION "lib"
diff --git a/ports/glui/portfile.cmake b/ports/glui/portfile.cmake
new file mode 100644
index 000000000..a3b37a597
--- /dev/null
+++ b/ports/glui/portfile.cmake
@@ -0,0 +1,37 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libglui/glui
+ REF 093edc777c02118282910bdee59f8db1bd46a84d
+ SHA512 650e169a6a55cd7d599176ac0767cd95b511fbc0a9b27aab2fa4f94a6395fa1a5762b6c23f5f1a9fc5ac9ce70c44fee4e4cbb6d6afd2307130cedfb80aae877a
+ HEAD_REF master
+ PATCHES
+ install-one-flavor.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
+
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
+)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ vcpkg_replace_string(
+ ${CURRENT_PACKAGES_DIR}/include/GL/glui.h
+ "ifdef GLUIDLL"
+ "if 1 //ifdef GLUIDLL"
+ )
+endif()
+
+file(INSTALL ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/glui/vcpkg-cmake-wrapper.cmake b/ports/glui/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..6fefefc7c
--- /dev/null
+++ b/ports/glui/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,9 @@
+_find_package(${ARGS})
+
+if(TARGET glui::glui AND NOT TARGET glui::glui_static)
+ add_library(glui::glui_static INTERFACE IMPORTED)
+ set_target_properties(glui::glui_static PROPERTIES INTERFACE_LINK_LIBRARIES glui::glui)
+elseif(TARGET glui::glui_static AND NOT TARGET glui::glui)
+ add_library(glui::glui INTERFACE IMPORTED)
+ set_target_properties(glui::glui PROPERTIES INTERFACE_LINK_LIBRARIES glui::glui_static)
+endif()