molassembler
molassembler copied to clipboard
Use boost/outcome.hpp instead of outcome/outcome.hpp
The outcome module is available in boost >=1.70 (see https://www.boost.org/doc/libs/1_70_0/libs/outcome/doc/html/index.html). Is there a reason to require a separate dependency instead of using boost proper?
Potential patch
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3754ef4..a04a9152 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,8 +75,6 @@ find_package(Boost
)
include(ImportNauty)
import_nauty()
-include(ImportOutcome)
-import_outcome()
include(ImportJSON)
import_json()
include(ImportRingDecomposerLib)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 67a7542f..d87f233b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -41,7 +41,6 @@ if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0")
target_link_libraries(molassembler_obj PRIVATE
Boost::boost
Scine::UtilsOS
- outcome
RingDecomposerLib
json
Boost::filesystem
@@ -53,7 +52,6 @@ else()
target_include_directories(molassembler_obj
PUBLIC
$<TARGET_PROPERTY:Scine::UtilsOS,INTERFACE_INCLUDE_DIRECTORIES>
- $<TARGET_PROPERTY:outcome,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:RingDecomposerLib,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Boost::boost,INTERFACE_INCLUDE_DIRECTORIES>
)
@@ -67,7 +65,6 @@ target_compile_options(molassembler_obj PRIVATE
target_include_directories(molassembler_obj SYSTEM PRIVATE
${Boost_INCLUDE_DIR}
${RDL_INCLUDE_DIR}
- $<TARGET_PROPERTY:outcome,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Eigen3::Eigen,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:json,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:nauty,INTERFACE_INCLUDE_DIRECTORIES>
@@ -108,7 +105,6 @@ function(molassembler_library_links target_name)
target_link_libraries(${target_name}
PUBLIC
Scine::UtilsOS
- outcome
PRIVATE
Boost::filesystem
Boost::system
diff --git a/src/Molassembler/Conformers.h b/src/Molassembler/Conformers.h
index b059541e..9d17bc72 100644
--- a/src/Molassembler/Conformers.h
+++ b/src/Molassembler/Conformers.h
@@ -10,13 +10,13 @@
#include "Molassembler/Types.h"
#include "Utils/Typenames.h"
-#include "outcome/outcome.hpp"
+#include "boost/outcome.hpp"
#include <vector>
namespace Scine {
namespace Molassembler {
-namespace outcome = OUTCOME_V2_NAMESPACE;
+namespace outcome = BOOST_OUTCOME_V2_NAMESPACE;
// Forward-declarations
class Molecule;
diff --git a/src/Molassembler/DirectedConformerGenerator.h b/src/Molassembler/DirectedConformerGenerator.h
index bd4fb290..febf0e89 100644
--- a/src/Molassembler/DirectedConformerGenerator.h
+++ b/src/Molassembler/DirectedConformerGenerator.h
@@ -23,7 +23,7 @@ class AtomCollection;
namespace Molassembler {
-namespace outcome = OUTCOME_V2_NAMESPACE;
+namespace outcome = BOOST_OUTCOME_V2_NAMESPACE;
class Molecule;
diff --git a/src/Molassembler/DistanceGeometry/ConformerGeneration.h b/src/Molassembler/DistanceGeometry/ConformerGeneration.h
index 34222636..bff37ab8 100644
--- a/src/Molassembler/DistanceGeometry/ConformerGeneration.h
+++ b/src/Molassembler/DistanceGeometry/ConformerGeneration.h
@@ -17,7 +17,7 @@
namespace Scine {
namespace Molassembler {
-namespace outcome = OUTCOME_V2_NAMESPACE;
+namespace outcome = BOOST_OUTCOME_V2_NAMESPACE;
namespace DistanceGeometry {
namespace Detail {
diff --git a/src/Molassembler/DistanceGeometry/DistanceBoundsMatrix.h b/src/Molassembler/DistanceGeometry/DistanceBoundsMatrix.h
index 9480f78e..aa7331aa 100644
--- a/src/Molassembler/DistanceGeometry/DistanceBoundsMatrix.h
+++ b/src/Molassembler/DistanceGeometry/DistanceBoundsMatrix.h
@@ -21,7 +21,7 @@ namespace Random {
class Engine;
} // namespace Random
-namespace outcome = OUTCOME_V2_NAMESPACE;
+namespace outcome = BOOST_OUTCOME_V2_NAMESPACE;
namespace DistanceGeometry {
diff --git a/src/Molassembler/DistanceGeometry/ExplicitBoundsGraph.h b/src/Molassembler/DistanceGeometry/ExplicitBoundsGraph.h
index 0f950ec8..f0611d29 100644
--- a/src/Molassembler/DistanceGeometry/ExplicitBoundsGraph.h
+++ b/src/Molassembler/DistanceGeometry/ExplicitBoundsGraph.h
@@ -28,7 +28,7 @@ namespace Random {
class Engine;
} // namespace Random
-namespace outcome = OUTCOME_V2_NAMESPACE;
+namespace outcome = BOOST_OUTCOME_V2_NAMESPACE;
// Forward-declare PrivateGraph
class PrivateGraph;
diff --git a/src/Molassembler/DistanceGeometry/ImplicitBoundsGraph.h b/src/Molassembler/DistanceGeometry/ImplicitBoundsGraph.h
index 01b702a3..526c20ae 100644
--- a/src/Molassembler/DistanceGeometry/ImplicitBoundsGraph.h
+++ b/src/Molassembler/DistanceGeometry/ImplicitBoundsGraph.h
@@ -32,7 +32,7 @@ namespace Random {
class Engine;
} // namespace Random
-namespace outcome = OUTCOME_V2_NAMESPACE;
+namespace outcome = BOOST_OUTCOME_V2_NAMESPACE;
// Forward-declare PrivateGraph
class PrivateGraph;
Right now, we also want/need to support Boost versions older than 1.70.0.
Might be possible to do this by adding a small proxy header to switch between outcome/outcome.hpp and boost/outcome.hpp depending on the boost version (BOOST_VERSION).
This is fixed in release 2.0.0.