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

803 Conform to new checkpoint API, make required #804

Merged
merged 2 commits into from
May 11, 2020

Conversation

lifflander
Copy link
Collaborator

@lifflander lifflander commented May 7, 2020

Fixes #803

  • Conform to 1.0.0-beta.8 changes in checkpoint, refactoring the
    namespaces and checkpoint API

  • Checkpoint is considered a optional dependency, but VT has been
    failing to compile without checkpoint for a long time. Thus, make it
    a required dependency.

  • Remove all the conditional logic on HAS_SERIALIZTION_LIBRARY

  • Remove the "mock" checkpoint-replacement serializer that handled all
    the basic types, std::vector, std::tuple of basic arthimetic types
    when checkpoint was not present.

- Conform to 1.0.0-beta.8 changes in checkpoint, refactoring the
  namespaces and checkpoint API

- Checkpoint is considered a optional dependency, but VT has been
  failing to compile without checkpoint for a long time. Thus, make it
  a required dependency.

- Remove all the conditional logic on HAS_SERIALIZTION_LIBRARY

- Remove the "mock" checkpoint-replacement serializer that handled all
  the basic types, std::vector, std::tuple of basic arthimetic types
  when checkpoinmt was not present.
@codecov
Copy link

codecov bot commented May 8, 2020

Codecov Report

Merging #804 into develop will decrease coverage by 0.00%.
The diff coverage is 50.00%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #804      +/-   ##
===========================================
- Coverage    79.88%   79.87%   -0.01%     
===========================================
  Files          341      341              
  Lines        10632    10630       -2     
===========================================
- Hits          8493     8491       -2     
  Misses        2139     2139              
Impacted Files Coverage Δ
src/vt/messaging/active.h 100.00% <ø> (ø)
src/vt/messaging/active.impl.h 94.33% <ø> (ø)
src/vt/messaging/message/message_serialize.h 100.00% <ø> (ø)
src/vt/messaging/message/shared_message.impl.h 100.00% <ø> (ø)
...c/vt/serialization/messaging/serialized_data_msg.h 100.00% <ø> (ø)
src/vt/vrt/collection/manager.impl.h 84.00% <ø> (ø)
src/vt/vrt/collection/messages/system_create.h 53.84% <ø> (ø)
src/vt/vrt/collection/messages/user_wrap.h 100.00% <ø> (ø)
.../vt/vrt/collection/migrate/migrate_handlers.impl.h 100.00% <ø> (ø)
src/vt/vrt/context/context_vrtmanager.impl.h 77.08% <ø> (ø)
... and 2 more

@lifflander
Copy link
Collaborator Author

lifflander commented May 8, 2020

I am completely at a loss as to what is wrong with the alpine-clang build after spending an hour trying to debug why the fuck cmake isn't including the proper directories. The generated targets file looks fine... but for some reason on that platform (with what should be a sufficient version of cmake), it doesn't include the interface directories from the imported target.

@nlslatt
Copy link
Collaborator

nlslatt commented May 8, 2020

I am completely at a loss as to what is wrong with the alpine-clang build after spending an hour trying to debug why the fuck cmake isn't including the proper directories. The generated targets file looks fine... but for some reason on that platform (with what should be a sufficient version of cmake), it doesn't include the interface directories from the imported target.

Do you need to add a target_include_directories line like we do for CLI11 and FMT?

@lifflander
Copy link
Collaborator Author

I am completely at a loss as to what is wrong with the alpine-clang build after spending an hour trying to debug why the fuck cmake isn't including the proper directories. The generated targets file looks fine... but for some reason on that platform (with what should be a sufficient version of cmake), it doesn't include the interface directories from the imported target.

Do you need to add a target_include_directories line like we do for CLI11 and FMT?

I tried that and it didn't solve the problem.

@krcb
Copy link

krcb commented May 8, 2020

@lifflander I just spent a day dealing with a similar horror. Can you try setting policy CM0060 to true (it may need to be a default)? This should be done just after your project declaration.

@lifflander
Copy link
Collaborator Author

CM0060

I tried setting this:

if (POLICY CMP0060)
  cmake_policy(SET CM0060 OLD)
endif()

But, I'm getting this:

CMake Error at CMakeLists.txt:5 (cmake_policy):
  Policy "CM0060" is not known to this version of CMake.

@lifflander
Copy link
Collaborator Author

The problem doesn't happen unless checkpoint is linked in, instead of being in the build tree.

The generated checkpointTargets.cmake has the appropriate INTERFACE_LINK_LIBRARIES, with the path needed, assuming ${_IMPORT_PREFIX} is correct.

@lifflander
Copy link
Collaborator Author

I found the bug! In the alpine image, I had accidentally installed checkpoint globally /usr/local/cmake, and find_package was finding the global installation with the old config. I shouldn't have installed it globally, but the way I use find_package should use the local installation, so that seems like a problem.

@lifflander lifflander merged commit 77b25cf into develop May 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Adapt VT's checkpoint usage to conform to adjusted API
4 participants