diff options
Diffstat (limited to 'vcpkg/ports/glui')
| -rw-r--r-- | vcpkg/ports/glui/install-one-flavor.patch | 70 | ||||
| -rw-r--r-- | vcpkg/ports/glui/portfile.cmake | 36 | ||||
| -rw-r--r-- | vcpkg/ports/glui/vcpkg-cmake-wrapper.cmake | 9 | ||||
| -rw-r--r-- | vcpkg/ports/glui/vcpkg.json | 20 |
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 + } + ] +} |