Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating HPX to V1.2 #4778

Merged
merged 2 commits into from
Jan 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ports/hpx/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: hpx
Version: 1.1.0-1
Build-Depends: hwloc, boost-accumulators, boost-algorithm, boost-asio, boost-assign, boost-atomic, boost-bimap, boost-chrono, boost-config, boost-context, boost-date-time, boost-dynamic-bitset, boost-exception, boost-filesystem, boost-format, boost-iostreams, boost-lockfree, boost-parameter, boost-program-options, boost-range, boost-regex, boost-signals2, boost-smart-ptr, boost-spirit, boost-system, boost-thread, boost-throw-exception, boost-variant, boost-winapi
Version: 1.2.0
Build-Depends: hwloc, boost-accumulators, boost-algorithm, boost-asio, boost-assign, boost-atomic, boost-bimap, boost-chrono, boost-config, boost-context, boost-dynamic-bitset, boost-exception, boost-filesystem, boost-iostreams, boost-lockfree, boost-program-options, boost-range, boost-regex, boost-signals2, boost-smart-ptr, boost-spirit, boost-system, boost-throw-exception, boost-variant, boost-winapi
Description: The C++ Standards Library for Concurrency and Parallelism
HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case.
14 changes: 5 additions & 9 deletions ports/hpx/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO STEllAR-GROUP/hpx
REF 1.1.0
SHA512 435250143ddbd2608995fe3dc5c229a096312d7ac930925ae56d0abd2d5689886126f6e81bc7e37b84ca9bc99f951ef1f39580168a359c48788ac8d008bc7078
REF 1.2.0
SHA512 caf2650381856db6a96fd4b120975d94d68d9bb19ada1d6cd076abe2d4aa1418e410167f774a881d95eacd0d46bbd5f90f16a4c77b4a2cf00e5b24ea17bfe670
HEAD_REF master
)

Expand All @@ -20,7 +20,6 @@ vcpkg_configure_cmake(
"-DBOOST_ROOT=${CURRENT_INSTALLED_DIR}/share/boost"
"-DHWLOC_ROOT=${CURRENT_INSTALLED_DIR}/share/hwloc"
-DHPX_WITH_VCPKG=ON
-DHPX_WITH_HWLOC=ON
-DHPX_WITH_TESTS=OFF
-DHPX_WITH_EXAMPLES=OFF
-DHPX_WITH_TOOLS=OFF
Expand All @@ -30,9 +29,6 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()

# post build cleanup
file(GLOB SHARE_DIR ${CURRENT_PACKAGES_DIR}/share/hpx-*)
file(RENAME ${SHARE_DIR} ${CURRENT_PACKAGES_DIR}/share/hpx)

vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/HPX)

file(GLOB_RECURSE CMAKE_FILES "${CURRENT_PACKAGES_DIR}/share/hpx/*.cmake")
Expand All @@ -44,7 +40,7 @@ foreach(CMAKE_FILE IN LISTS CMAKE_FILES)
_contents "${_contents}")
string(REGEX REPLACE
"lib/hpx/([A-Za-z0-9_.-]+\\.dll)"
"bin/\\1"
"bin/hpx/\\1"
_contents "${_contents}")
file(WRITE ${CMAKE_FILE} "${_contents}")
endforeach()
Expand All @@ -65,7 +61,7 @@ endif()

file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/hpx/*.dll)
if(DLLS)
file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin/hpx)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the change to put DLLs in a subdirectory? This will break our applocal deployment script.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HPX relies on those DLL's to be in that subdirectory. They are loaded in special ways at runtime.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, I think HPX doesn't like to be deployed to the application directory, I believe we have talked about some specific problems that has caused us. Is there a way disable deployment for HPX?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right; moving the binaries to this subdirectory will cause the binaries to not be deployed to the application directory, however any users will simply fail to run in this case (they'll hit F5 and their program will immediately crash).

When you say that HPX doesn't like to be deployed to the app directory and that you have special ways to load it at runtime, what do you mean specifically? Do you need to be deployed into a subdirectory of the app folder?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ras0219-msft In general it's the easiest to leave the HPX binaries where they have been installed. I will need to investigate this a bit further to ensure your app-deployment doesn't break things for us.

For now, let's go ahead with this PR as is (just leaving the binaries in the HPX subdir undeployed, HPX will work without them).

file(REMOVE ${DLLS})
endif()

Expand All @@ -77,7 +73,7 @@ endif()

file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/hpx/*.dll)
if(DLLS)
file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/hpx)
file(REMOVE ${DLLS})
endif()

Expand Down