mobilinkd/m17-cxx-demod

Build problems for mac and windows under conda environment

Closed this issue · 1 comments

n1ai commented

Hi, Rob!

I have made a lot of progress. I have made a conda recipe for m17-cxx-demod and it is in the staged-recipes area which means it is being built using github actions via azure CI. It builds for linux, but does not build for mac and windows, due to some differences in the c++ environment supported by msvc (windows) and clang (mac osx).

The overall process is tracked by my pull request conda-forge/staged-recipes#18172

The results of builds are at: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=465650&view=logs&j=e35d4f76-8ff2-5536-d795-df91e63eb9f7 the results of their azure CI doing the builds.

  1. For osx we see the error:

In file included from $SRC_DIR/apps/m17-mod.cpp:3:
$SRC_DIR/include/m17cxx/Util.h:274:20: error: expected unqualified-id
constexpr auto MAX_INPUT = (1 << (n - 1));
^
/Applications/Xcode_12.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/syslimits.h:82:21: note: expanded from macro 'MAX_INPUT'
#define MAX_INPUT 1024 /* max bytes in terminal input */

  1. For osx we see the error:

$SRC_DIR/include/m17cxx/M17Randomizer.h:6:10: fatal error: 'experimental/array' file not found
#include <experimental/array>
^~~~~~~~~~~~~~~~~~~~
1 error generated.

  1. For win we see the error:

c:\bld\m17-cxx-demod_1645922021396\work\include\m17cxx\M17Randomizer.h(6): fatal error C1083: Cannot open include file: 'experimental/array': No such file or directory

I have very little experience in C++ so I'm wondering if you can help address these errors.

For (1), is this just a collision in naming that can be resolved by using a different name in the m17 source code?

For (2) and (3), the only use I see is:

Trellis.h:#include <experimental/array>
Trellis.h:inline constexpr auto P2 = std::experimental::make_array<int8_t>(
Trellis.h:inline constexpr auto P3 = std::experimental::make_array<int8_t>(

Can this be re-coded to not use the experimental feature?

From my point of view, it would be ideal if you could resolve the issues and make a new tag that I could then use to get a rebuild done.

Otherwise I would see if I could not find some help to resolve this independently, or just be satisfied with linux builds, although there is at least one other person who really wants this to use this software on windows, and I'm sure there are more.

If you want to address this out of band, you can ping me (n1ai) on M17 chat.

Thanks,
Dave

Sure -- it should be upgraded to use C++17 std::array<> -- the code was started a while ago. Feel free to update the CMake and source file and send a PR.