summary refs log tree commit diff
path: root/pkgs/applications/science/astronomy/openspace/constexpr.patch
diff options
context:
space:
mode:
authorTimothée Jourde <itim.lcf@gmail.com>2018-06-18 00:11:28 +0200
committerTimothée Jourde <itim.lcf@gmail.com>2018-06-19 02:59:23 +0200
commitcb597c229b74a07773571af2596f27bc14e3056f (patch)
tree1870bce292ef52aab252483298adc0a764bc1667 /pkgs/applications/science/astronomy/openspace/constexpr.patch
parentbf6974648ecb0ef7d81eed2a38766ba008996abb (diff)
downloadnixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.tar
nixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.tar.gz
nixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.tar.bz2
nixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.tar.lz
nixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.tar.xz
nixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.tar.zst
nixpkgs-cb597c229b74a07773571af2596f27bc14e3056f.zip
openspace: init at 0.11.1
This adds a new package: OpenSpace, an open source astrovisualization
project, and one of its dependencies: SOIL (Simple OpenGL Image
Library).

This kind of works for me, but please note that this build is not very
usable for now. This is a first attempt. Also, Linux doesn't seem to
be well supported upstream, hence the various patches (I will open an
issue upstream to discuss them).

Squashed commits:
openspace: fetch upstream glm "patch"
openspace: add missing dependency (libXxf86vm)
soil: mesa -> mesa_noglu
Diffstat (limited to 'pkgs/applications/science/astronomy/openspace/constexpr.patch')
-rw-r--r--pkgs/applications/science/astronomy/openspace/constexpr.patch91
1 files changed, 91 insertions, 0 deletions
diff --git a/pkgs/applications/science/astronomy/openspace/constexpr.patch b/pkgs/applications/science/astronomy/openspace/constexpr.patch
new file mode 100644
index 00000000000..d9fc91d7c27
--- /dev/null
+++ b/pkgs/applications/science/astronomy/openspace/constexpr.patch
@@ -0,0 +1,91 @@
+diff --git a/include/openspace/util/distanceconversion.h b/include/openspace/util/distanceconversion.h
+index 80a3a96..7059752 100755
+--- a/include/openspace/util/distanceconversion.h
++++ b/include/openspace/util/distanceconversion.h
+@@ -159,24 +159,34 @@ constexpr const char* nameForDistanceUnit(DistanceUnit unit, bool pluralForm = f
+ }
+ 
+ constexpr DistanceUnit distanceUnitFromString(const char* unitName) {
++    int result = -1;
++  
+     int i = 0;
+     for (const char* val : DistanceUnitNamesSingular) {
+         if (ghoul::equal(unitName, val)) {
+-            return static_cast<DistanceUnit>(i);
++            result = i;
++            break;
+         }
+         ++i;
+     }
+ 
+-    i = 0;
+-    for (const char* val : DistanceUnitNamesPlural) {
+-        if (ghoul::equal(unitName, val)) {
+-            return static_cast<DistanceUnit>(i);
++    if (result == -1) {
++        i = 0;
++        for (const char* val : DistanceUnitNamesPlural) {
++            if (ghoul::equal(unitName, val)) {
++                result = i;
++                break;
++            }
++            ++i;
+         }
+-        ++i;
+     }
+ 
+-    ghoul_assert(false, "Unit name is not a valid name");
+-    throw ghoul::MissingCaseException();
++    if (result != -1)
++        return static_cast<DistanceUnit>(result);
++    else {
++        ghoul_assert(false, "Unit name is not a valid name");
++        throw ghoul::MissingCaseException();
++    }
+ }
+ 
+ 
+diff --git a/include/openspace/util/timeconversion.h b/include/openspace/util/timeconversion.h
+index a36c92a..699bca9 100755
+--- a/include/openspace/util/timeconversion.h
++++ b/include/openspace/util/timeconversion.h
+@@ -142,23 +142,32 @@ constexpr const char* nameForTimeUnit(TimeUnit unit, bool pluralForm = false) {
+ }
+ 
+ constexpr TimeUnit timeUnitFromString(const char* unitName) {
++    int result = -1;
++    
+     int i = 0;
+     for (const char* val : TimeUnitNamesSingular) {
+         if (ghoul::equal(unitName, val)) {
+-            return static_cast<TimeUnit>(i);
++            result = i;
++            break;
+         }
+         ++i;
+     }
+ 
+-    i = 0;
+-    for (const char* val : TimeUnitNamesPlural) {
+-        if (ghoul::equal(unitName, val)) {
+-            return static_cast<TimeUnit>(i);
++    if (result == -1) {
++        i = 0;
++        for (const char* val : TimeUnitNamesPlural) {
++            if (ghoul::equal(unitName, val)) {
++                result = i;
++                break;
++            }
++            ++i;
+         }
+-        ++i;
+     }
+ 
+-    throw ghoul::MissingCaseException();
++    if (result != -1)
++        return static_cast<TimeUnit>(result);
++    else
++        throw ghoul::MissingCaseException();
+ }
+ 
+ std::pair<double, std::string> simplifyTime(double seconds,