aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/glui
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/glui')
-rw-r--r--vcpkg/ports/glui/install-one-flavor.patch70
-rw-r--r--vcpkg/ports/glui/portfile.cmake36
-rw-r--r--vcpkg/ports/glui/vcpkg-cmake-wrapper.cmake9
-rw-r--r--vcpkg/ports/glui/vcpkg.json20
4 files changed, 135 insertions, 0 deletions
diff --git a/vcpkg/ports/glui/install-one-flavor.patch b/vcpkg/ports/glui/install-one-flavor.patch
new file mode 100644
index 0000000..fb66d92
--- /dev/null
+++ b/vcpkg/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/vcpkg/ports/glui/portfile.cmake b/vcpkg/ports/glui/portfile.cmake
new file mode 100644
index 0000000..00a1ae1
--- /dev/null
+++ b/vcpkg/ports/glui/portfile.cmake
@@ -0,0 +1,36 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libglui/glui
+ REF 093edc777c02118282910bdee59f8db1bd46a84d
+ SHA512 650e169a6a55cd7d599176ac0767cd95b511fbc0a9b27aab2fa4f94a6395fa1a5762b6c23f5f1a9fc5ac9ce70c44fee4e4cbb6d6afd2307130cedfb80aae877a
+ HEAD_REF master
+ PATCHES
+ install-one-flavor.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+)
+
+vcpkg_cmake_install()
+
+vcpkg_copy_pdbs()
+
+vcpkg_cmake_config_fixup(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/vcpkg/ports/glui/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/glui/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 0000000..6fefefc
--- /dev/null
+++ b/vcpkg/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()
diff --git a/vcpkg/ports/glui/vcpkg.json b/vcpkg/ports/glui/vcpkg.json
new file mode 100644
index 0000000..e9ce83d
--- /dev/null
+++ b/vcpkg/ports/glui/vcpkg.json
@@ -0,0 +1,20 @@
+{
+ "name": "glui",
+ "version-date": "2019-11-30",
+ "port-version": 4,
+ "description": "GLUI is a GLUT-based C++ user interface library",
+ "homepage": "https://github.com/libglui/glui",
+ "supports": "!android",
+ "dependencies": [
+ "freeglut",
+ "opengl",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}