diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-09-12 01:42:07 +0800 |
|---|---|---|
| committer | Curtis J Bezault <curtbezault@gmail.com> | 2019-09-11 10:42:07 -0700 |
| commit | 87df6592ff82792e439ac63df1cc509d749f6f23 (patch) | |
| tree | 49919480e1686e8bd3e4279ef7af2d9f621a946b | |
| parent | 223dd5aa5ad706ad1b1346e01f1891ad4ccc65aa (diff) | |
| download | vcpkg-87df6592ff82792e439ac63df1cc509d749f6f23.tar.gz vcpkg-87df6592ff82792e439ac63df1cc509d749f6f23.zip | |
[sdl1]Support linux build. (#8070)
* [sdl1]Support linux build.
* [sdl1]Remove linux configure args.
* [sdl1]Use vcpkg_execute_build_process instead of vcpkg_execute_required_process.
* [sdl1]Add vcpkg_execute_build_process args.
* [sdl1]Add NO_PARALLEL_COMMAND param with vcpkg_execute_build_process.
| -rw-r--r-- | ports/sdl1/CONTROL | 2 | ||||
| -rw-r--r-- | ports/sdl1/fix-linux-build.patch | 13 | ||||
| -rw-r--r-- | ports/sdl1/portfile.cmake | 134 |
3 files changed, 113 insertions, 36 deletions
diff --git a/ports/sdl1/CONTROL b/ports/sdl1/CONTROL index 59606dcb0..0b9310633 100644 --- a/ports/sdl1/CONTROL +++ b/ports/sdl1/CONTROL @@ -1,3 +1,3 @@ Source: sdl1 -Version: 1.2.15-6 +Version: 1.2.15-7 Description: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. diff --git a/ports/sdl1/fix-linux-build.patch b/ports/sdl1/fix-linux-build.patch new file mode 100644 index 000000000..f6ad36c2d --- /dev/null +++ b/ports/sdl1/fix-linux-build.patch @@ -0,0 +1,13 @@ +diff --git a/src/video/x11/SDL_x11sym.h b/src/video/x11/SDL_x11sym.h +index 4875b98..10bf365 100644 +--- a/src/video/x11/SDL_x11sym.h ++++ b/src/video/x11/SDL_x11sym.h +@@ -165,7 +165,7 @@ SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),return) + */ + #ifdef LONG64 + SDL_X11_MODULE(IO_32BIT) +-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) ++SDL_X11_SYM(int,_XData32,(Display *dpy,_Xconst register long *data,unsigned len),(dpy,data,len),return) + SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) + #endif + diff --git a/ports/sdl1/portfile.cmake b/ports/sdl1/portfile.cmake index 4e8d512df..e68e00e6d 100644 --- a/ports/sdl1/portfile.cmake +++ b/ports/sdl1/portfile.cmake @@ -6,45 +6,109 @@ vcpkg_from_github( REF release-1.2.15 SHA512 38b94a650ec205377ae1503d0ec8a5254ef6d50ed0acac8d985b57b64bc16ea042cfa41e19e5ef8317980c4afb83186829f5bc3da9433d0a649dfd10554801b5 HEAD_REF master - PATCHES export-symbols-only-in-shared-build.patch + PATCHES + export-symbols-only-in-shared-build.patch + fix-linux-build.patch ) configure_file(${SOURCE_PATH}/include/SDL_config.h.default ${SOURCE_PATH}/include/SDL_config.h COPYONLY) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/SDL1_2017.sln DESTINATION ${SOURCE_PATH}/VisualC/ ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDL_static.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL RENAME SDL.vcxproj) - file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDLmain_static.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain RENAME SDLmain.vcxproj) +if (VCPKG_TARGET_IS_WINDOWS) + file(COPY ${CMAKE_CURRENT_LIST_DIR}/SDL1_2017.sln DESTINATION ${SOURCE_PATH}/VisualC/ ) + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDL_static.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL RENAME SDL.vcxproj) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDLmain_static.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain RENAME SDLmain.vcxproj) + else() + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDL_dynamic.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL RENAME SDL.vcxproj) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDLmain_dynamic.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain RENAME SDLmain.vcxproj) + endif() + + # This text file gets copied as a library, and included as one in the package + file(REMOVE_RECURSE ${SOURCE_PATH}/src/hermes/COPYING.LIB) + + vcpkg_install_msbuild( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH VisualC/SDL1_2017.sln + INCLUDES_SUBPATH include + LICENSE_SUBPATH COPYING + ALLOW_ROOT_INCLUDES + ) + + #Take all the fils into include/SDL to sovle conflict with SDL2 port + file(GLOB files ${CURRENT_PACKAGES_DIR}/include/*) + foreach(file ${files}) + file(COPY ${file} DESTINATION ${CURRENT_PACKAGES_DIR}/include/SDL) + file(REMOVE ${file}) + endforeach() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/SDL/doxyfile) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/SDLmain.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/SDLmain.lib) + endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/SDLmain.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDLmaind.lib) + endif() else() - file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDL_dynamic.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDL RENAME SDL.vcxproj) - file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/SDLmain_dynamic.vcxproj DESTINATION ${SOURCE_PATH}/VisualC/SDLmain RENAME SDLmain.vcxproj) -endif() + find_program(autoreconf autoreconf) + if (NOT autoreconf OR NOT EXISTS "/usr/share/doc/libgles2/copyright") + message(FATAL_ERROR "autoreconf and libgles2-mesa-dev must be installed before libepoxy can build. Install them with \"apt-get dh-autoreconf libgles2-mesa-dev\".") + endif() + + find_program(MAKE make) + if (NOT MAKE) + message(FATAL_ERROR "MAKE not found") + endif() -# This text file gets copied as a library, and included as one in the package -file(REMOVE_RECURSE ${SOURCE_PATH}/src/hermes/COPYING.LIB) - -vcpkg_install_msbuild( - SOURCE_PATH ${SOURCE_PATH} - PROJECT_SUBPATH VisualC/SDL1_2017.sln - INCLUDES_SUBPATH include - LICENSE_SUBPATH COPYING - ALLOW_ROOT_INCLUDES -) - -#Take all the fils into include/SDL to sovle conflict with SDL2 port -file(GLOB files ${CURRENT_PACKAGES_DIR}/include/*) -foreach(file ${files}) - file(COPY ${file} DESTINATION ${CURRENT_PACKAGES_DIR}/include/SDL) - file(REMOVE ${file}) -endforeach() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/SDL/doxyfile) - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/SDLmain.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/SDLmain.lib) -endif() -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/SDLmain.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDLmaind.lib) -endif() + file(REMOVE_RECURSE ${SOURCE_PATH}/m4) + file(MAKE_DIRECTORY ${SOURCE_PATH}/m4) + + vcpkg_execute_required_process( + COMMAND "./autogen.sh" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME autoreconf-${TARGET_TRIPLET} + ) + + message(STATUS "Configuring ${TARGET_TRIPLET}") + set(OUT_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/make-build-${TARGET_TRIPLET}-release) + + file(REMOVE_RECURSE ${OUT_PATH_RELEASE}) + file(MAKE_DIRECTORY ${OUT_PATH_RELEASE}) + + vcpkg_execute_required_process( + COMMAND "./configure" --prefix=${OUT_PATH_RELEASE} + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME config-${TARGET_TRIPLET} + ) + + message(STATUS "Building ${TARGET_TRIPLET}") + vcpkg_execute_build_process( + COMMAND "make -j ${VCPKG_CONCURRENCY}" + NO_PARALLEL_COMMAND "make" + WORKING_DIRECTORY "${SOURCE_PATH}" + LOGNAME "build-${TARGET_TRIPLET}-release" + ) + + message(STATUS "Installing ${TARGET_TRIPLET}") + vcpkg_execute_required_process( + COMMAND "make install" + WORKING_DIRECTORY "${SOURCE_PATH}" + LOGNAME "install-${TARGET_TRIPLET}-release" + ) + + file(INSTALL ${OUT_PATH_RELEASE}/include DESTINATION ${CURRENT_PACKAGES_DIR}) + file(INSTALL ${OUT_PATH_RELEASE}/lib DESTINATION ${CURRENT_PACKAGES_DIR}) + file(INSTALL ${OUT_PATH_RELEASE}/share DESTINATION ${CURRENT_PACKAGES_DIR}) + + file(GLOB DYNAMIC_LIBS ${CURRENT_PACKAGES_DIR}/lib *.so*) + + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(COPY ${DYNAMIC_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + endif() + file(REMOVE ${DYNAMIC_LIBS}) + + file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +endif()
\ No newline at end of file |
