diff options
| author | Alexander Karatarakis <alex@karatarakis.com> | 2016-12-19 17:21:15 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-19 17:21:15 -0800 |
| commit | 3b7b380798fbae1072f093019fb89cb7ced744d4 (patch) | |
| tree | 50d708d61e7b0fbc60d5425154a4ae17fa0a3098 | |
| parent | a077ccc4c7dfd7f2fd3a63aed9458952febcd94a (diff) | |
| parent | 84ce8ae5cb3bc1998f87b6e2aeb1d57514428845 (diff) | |
| download | vcpkg-3b7b380798fbae1072f093019fb89cb7ced744d4.tar.gz vcpkg-3b7b380798fbae1072f093019fb89cb7ced744d4.zip | |
Merge pull request #342 from mmassing/statically_linked_glew
[glew] Implement static build
| -rw-r--r-- | ports/glew/portfile.cmake | 104 |
1 files changed, 66 insertions, 38 deletions
diff --git a/ports/glew/portfile.cmake b/ports/glew/portfile.cmake index fd3c5ef9a..e7cf16cf2 100644 --- a/ports/glew/portfile.cmake +++ b/ports/glew/portfile.cmake @@ -1,7 +1,3 @@ -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glew-2.0.0) vcpkg_download_distfile(ARCHIVE_FILE @@ -19,45 +15,77 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() -if(NOT EXISTS ${SOURCE_PATH}/build/vc12/glew_shared14.vcxproj) - message(STATUS "Upgrading projects") - file(READ ${SOURCE_PATH}/build/vc12/glew_shared.vcxproj PROJ) - string(REPLACE - "<PlatformToolset>v120</PlatformToolset>" - "<PlatformToolset>v140</PlatformToolset>" - PROJ ${PROJ}) - string(REPLACE - "opengl32.lib%" - "opengl32.lib\;%" - PROJ ${PROJ}) - file(WRITE ${SOURCE_PATH}/build/vc12/glew_shared14.vcxproj ${PROJ}) -endif() +# TODO: Maybe switch to glews' cmake build system in the future +FOREACH(LINKAGE shared static) + if(NOT EXISTS ${SOURCE_PATH}/build/vc12/glew_${LINKAGE}14.vcxproj) + message(STATUS "Upgrading " ${LINKAGE} " project") + file(READ ${SOURCE_PATH}/build/vc12/glew_${LINKAGE}.vcxproj PROJ) + string(REPLACE + "<PlatformToolset>v120</PlatformToolset>" + "<PlatformToolset>v140</PlatformToolset>" + PROJ ${PROJ}) + string(REPLACE + "opengl32.lib%" + "opengl32.lib\;%" + PROJ ${PROJ}) + + if (LINKAGE STREQUAL "static") + string(REPLACE + "MultiThreadedDebugDLL" + "MultiThreadedDebug" + PROJ ${PROJ} + ) + endif() + file(WRITE ${SOURCE_PATH}/build/vc12/glew_${LINKAGE}14.vcxproj ${PROJ}) + endif() +ENDFOREACH(LINKAGE) message(STATUS "Upgrading projects done") -vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/build/vc12/glew_shared14.vcxproj -) +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build/vc12/glew_static14.vcxproj + ) +else() + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build/vc12/glew_shared14.vcxproj + ) +endif() + message(STATUS "Installing") -file(INSTALL - ${SOURCE_PATH}/bin/Debug/${BUILD_ARCH}/glew32d.dll - ${SOURCE_PATH}/bin/Debug/${BUILD_ARCH}/glew32d.pdb - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin -) -file(INSTALL - ${SOURCE_PATH}/bin/Release/${BUILD_ARCH}/glew32.dll - ${SOURCE_PATH}/bin/Release/${BUILD_ARCH}/glew32.pdb - DESTINATION ${CURRENT_PACKAGES_DIR}/bin -) -file(INSTALL - ${SOURCE_PATH}/lib/Debug/${BUILD_ARCH}/glew32d.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib -) -file(INSTALL - ${SOURCE_PATH}/lib/Release/${BUILD_ARCH}/glew32.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib -) +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(INSTALL + ${SOURCE_PATH}/bin/Debug/${BUILD_ARCH}/glew32d.dll + ${SOURCE_PATH}/bin/Debug/${BUILD_ARCH}/glew32d.pdb + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + ) + file(INSTALL + ${SOURCE_PATH}/bin/Release/${BUILD_ARCH}/glew32.dll + ${SOURCE_PATH}/bin/Release/${BUILD_ARCH}/glew32.pdb + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + ) + file(INSTALL + ${SOURCE_PATH}/lib/Debug/${BUILD_ARCH}/glew32d.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + ) + file(INSTALL + ${SOURCE_PATH}/lib/Release/${BUILD_ARCH}/glew32.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + ) +else() + file(INSTALL + ${SOURCE_PATH}/lib/Debug/${BUILD_ARCH}/glew32sd.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + RENAME glew32d.lib + ) + file(INSTALL + ${SOURCE_PATH}/lib/Release/${BUILD_ARCH}/glew32s.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + RENAME glew32.lib + ) +endif() + file(INSTALL ${SOURCE_PATH}/include/GL DESTINATION ${CURRENT_PACKAGES_DIR}/include |
