mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-28 02:22:52 +08:00
[glui] Add new port (#9155)
* [glui] Add new port * [freeglut] Fix static linking * [glui] Fix description * [glui] Update
This commit is contained in:
parent
6f41e5cc7c
commit
b2f7823dd2
@ -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.
|
||||
|
@ -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(
|
||||
|
5
ports/glui/CONTROL
Normal file
5
ports/glui/CONTROL
Normal file
@ -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
|
70
ports/glui/install-one-flavor.patch
Normal file
70
ports/glui/install-one-flavor.patch
Normal file
@ -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"
|
37
ports/glui/portfile.cmake
Normal file
37
ports/glui/portfile.cmake
Normal file
@ -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)
|
9
ports/glui/vcpkg-cmake-wrapper.cmake
Normal file
9
ports/glui/vcpkg-cmake-wrapper.cmake
Normal file
@ -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()
|
Loading…
Reference in New Issue
Block a user