ace3p-extensions will not compile on windows
This is blocking the SLAC project.
When trying to build smtkace3p
to test cmb/cmb-superbuild!751 (merged), the ACE3P code won't build, specifically, VS2019 cannot compile smtk::simulation::ace3p::Project
, which is a subclass of smtk::project::Project
. There is something about the smtk::resource::DerivedClass
that seems to confound VS2019 (I have seen the same code compile on both linux and macos).
[ 24%] Building CXX object smtk/simulation/ace3p/CMakeFiles/smtkACE3P.dir/Project.cxx.obj
Project.cxx
C:/Users/ContainerUser/build/cmb-superbuild/install/include/smtk/21.04.0\smtk/resource/DerivedFrom.h(74): error C2280: 'smtk::project::Project::Project(const smtk::project::Project &)': attempting to reference a deleted function
C:/Users/ContainerUser/build/cmb-superbuild/install/include/smtk/21.04.0\smtk/project/Project.h(107): note: compiler has generated 'smtk::project::Project::Project' here
C:/Users/ContainerUser/build/cmb-superbuild/install/include/smtk/21.04.0\smtk/project/Project.h(107): note: 'smtk::project::Project::Project(const smtk::project::Project &)': function was implicitly deleted because a base class inv
okes a deleted or inaccessible function 'smtk::resource::DerivedFrom<smtk::project::Project,smtk::resource::Resource>::DerivedFrom(const smtk::resource::DerivedFrom<smtk::project::Project,smtk::resource::Resource> &)'
C:/Users/ContainerUser/build/cmb-superbuild/install/include/smtk/21.04.0\smtk/resource/DerivedFrom.h(78): note: 'smtk::resource::DerivedFrom<smtk::project::Project,smtk::resource::Resource>::DerivedFrom(const smtk::resource::Derive
dFrom<smtk::project::Project,smtk::resource::Resource> &)': function was explicitly deleted
C:/Users/ContainerUser/build/cmb-superbuild/install/include/smtk/21.04.0\smtk/resource/DerivedFrom.h(73): note: while compiling class template member function 'smtk::resource::DerivedFrom<smtk::simulation::ace3p::Project,smtk::proj
ect::Project>::DerivedFrom(smtk::resource::DerivedFrom<smtk::simulation::ace3p::Project,smtk::project::Project> &&)'
C:/Users/ContainerUser/build/cmb-superbuild/superbuild/smtkace3p/src\smtk/simulation/ace3p/Project.h(33): note: see reference to class template instantiation 'smtk::resource::DerivedFrom<smtk::simulation::ace3p::Project,smtk::proje
ct::Project>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(54): note: see reference to class template instantiation 'boost::arg<9>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(53): note: see reference to class template instantiation 'boost::arg<8>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(52): note: see reference to class template instantiation 'boost::arg<7>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(51): note: see reference to class template instantiation 'boost::arg<6>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(50): note: see reference to class template instantiation 'boost::arg<5>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(49): note: see reference to class template instantiation 'boost::arg<4>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(48): note: see reference to class template instantiation 'boost::arg<3>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(47): note: see reference to class template instantiation 'boost::arg<2>' being compiled
C:/Users/ContainerUser/build/cmb-superbuild/install/include/boost-1_71\boost/bind/placeholders.hpp(46): note: see reference to class template instantiation 'boost::arg<1>' being compiled
make[4]: *** [smtk/simulation/ace3p/CMakeFiles/smtkACE3P.dir/build.make:108: smtk/simulation/ace3p/CMakeFiles/smtkACE3P.dir/Project.cxx.obj] Error 2
FWIW, I can get this to compile by essentially duplicating smtk::resource::DerivedFrom
in the ace3p plugin and namespace and deleting the offending lines that won't compile. Sure doesn't seem like a solution, but right now I got nuthin else.
Edited by John Tourtellott