alyssa@debian-stable:~/rainynite$ ./update_and_build.sh
Usage: ./update_and_build.sh <cmake configure flags>
Updating...
Already up-to-date.
Build fmt...
~/rainynite/fmt ~/rainynite
-- CMake version: 3.7.2
-- Version: 4.0.1
-- Build type: Release
-- Target 'doc' disabled (requires doxygen)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/alyssa/rainynite/fmt/build
ninja: no work to do.
[0/1] Running tests...
Test project /home/alyssa/rainynite/fmt/build
Start 1: assert-test
1/14 Test #1: assert-test ...................... Passed 0.00 sec
Start 2: container-test
2/14 Test #2: container-test ................... Passed 0.00 sec
Start 3: gtest-extra-test
3/14 Test #3: gtest-extra-test ................. Passed 0.00 sec
Start 4: format-test
4/14 Test #4: format-test ...................... Passed 0.02 sec
Start 5: format-impl-test
5/14 Test #5: format-impl-test ................. Passed 0.00 sec
Start 6: ostream-test
6/14 Test #6: ostream-test ..................... Passed 0.00 sec
Start 7: printf-test
7/14 Test #7: printf-test ...................... Passed 0.00 sec
Start 8: string-test
8/14 Test #8: string-test ...................... Passed 0.00 sec
Start 9: time-test
9/14 Test #9: time-test ........................ Passed 0.00 sec
Start 10: util-test
10/14 Test #10: util-test ........................ Passed 0.00 sec
Start 11: macro-test
11/14 Test #11: macro-test ....................... Passed 0.00 sec
Start 12: custom-formatter-test
12/14 Test #12: custom-formatter-test ............ Passed 0.00 sec
Start 13: posix-mock-test
13/14 Test #13: posix-mock-test .................. Passed 0.00 sec
Start 14: posix-test
14/14 Test #14: posix-test ....................... Passed 0.00 sec
100% tests passed, 0 tests failed out of 14
Total Test time (real) = 0.06 sec
[sudo] password for alyssa:
[0/1] Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/local/lib/cmake/fmt/fmt-config.cmake
-- Up-to-date: /usr/local/lib/cmake/fmt/fmt-config-version.cmake
-- Up-to-date: /usr/local/lib/cmake/fmt/fmt-targets.cmake
-- Installing: /usr/local/lib/cmake/fmt/fmt-targets-release.cmake
-- Up-to-date: /usr/local/lib/libfmt.so.4.0.1
-- Up-to-date: /usr/local/lib/libfmt.so.4
-- Up-to-date: /usr/local/lib/libfmt.so
-- Up-to-date: /usr/local/include/fmt/container.h
-- Up-to-date: /usr/local/include/fmt/format.h
-- Up-to-date: /usr/local/include/fmt/format.cc
-- Up-to-date: /usr/local/include/fmt/ostream.h
-- Up-to-date: /usr/local/include/fmt/ostream.cc
-- Up-to-date: /usr/local/include/fmt/printf.h
-- Up-to-date: /usr/local/include/fmt/printf.cc
-- Up-to-date: /usr/local/include/fmt/string.h
-- Up-to-date: /usr/local/include/fmt/time.h
-- Up-to-date: /usr/local/include/fmt/posix.h
~/rainynite
Building lib2geom...
~/rainynite/lib2geom ~/rainynite
-- Boost version: 1.62.0
-- gtk+-2.0 Includes, Compile and Link Flags: NOT FOUND
-- gtkmm-2.4 Includes, Compile and Link Flags: NOT FOUND
CMake Warning (dev) at CMakeScripts/Config2GeomDepends.cmake:20 (IF):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "cairomm-1.0_FOUND" will no longer be dereferenced
when the policy is set to NEW. Since the policy is not set the OLD
behavior will be used.
Call Stack (most recent call first):
CMakeLists.txt:12 (INCLUDE)
This warning is for project developers. Use -Wno-dev to suppress it.
-- cairomm-1.0 Includes, Compile and Link Flags: FOUND
-- cairo Includes, Compile and Link Flags: FOUND
-- gsl Includes, Compile and Link Flags: NOT FOUND
-- pycairo Includes, Compile and Link Flags: NOT FOUND
-- Configuring done
CMake Error at src/toys/CMakeLists.txt:130 (ADD_LIBRARY):
Target "lpetoy" links to item " -lcairo" which has leading or trailing
whitespace. This is now an error according to policy CMP0004.
CMake Error at src/toys/CMakeLists.txt:134 (ADD_EXECUTABLE):
Target "lpe-test" links to item " -lcairo" which has leading or trailing
whitespace. This is now an error according to policy CMP0004.
CMake Error at src/toys/CMakeLists.txt:130 (ADD_LIBRARY):
Target "lpetoy" links to item " -lcairo" which has leading or trailing
whitespace. This is now an error according to policy CMP0004.
-- Generating done
-- Build files have been written to: /home/alyssa/rainynite/lib2geom/build
ninja: error: loading 'build.ninja': No such file or directory
alyssa@debian-stable:~/rainynite$ screenfetch
_,met$$$$$gg. alyssa@debian-stable
,g$$$$$$$$$$$$$$$P. OS: Debian 9.1 stretch
,g$$P"" """Y$$.". Kernel: x86_64 Linux 4.9.0-3-amd64
,$$P' `$$$. Uptime: 15m
',$$P ,ggs. `$$b: Packages: 1515
`d$$' ,$P"' . $$$ Shell: bash 4.4.12
$$P d$' , $$P Resolution: 1440x900
$$: $$. - ,d$$' DE: XFCE
$$\; Y$b._ _,d$P' WM: Xfwm4
Y$$. `.`"Y$$$$P"' WM Theme: Arc-Darker
`$$b "-.__ GTK Theme: Arc-Darker [GTK2]
`Y$$ Icon Theme: Adwaita
`Y$$. Font: Cantarell 10
`$$b. CPU: Intel Core i5-4250U CPU @ 2.6GHz
`Y$$b. RAM: 689MiB / 3896MiB
`"Y$b._
`""""
alyssa@debian-stable:~/rainynite$
```
alyssa@debian-stable:~/rainynite$ ./update_and_build.sh
Usage: ./update_and_build.sh <cmake configure flags>
Updating...
Already up-to-date.
Build fmt...
~/rainynite/fmt ~/rainynite
-- CMake version: 3.7.2
-- Version: 4.0.1
-- Build type: Release
-- Target 'doc' disabled (requires doxygen)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/alyssa/rainynite/fmt/build
ninja: no work to do.
[0/1] Running tests...
Test project /home/alyssa/rainynite/fmt/build
Start 1: assert-test
1/14 Test #1: assert-test ...................... Passed 0.00 sec
Start 2: container-test
2/14 Test #2: container-test ................... Passed 0.00 sec
Start 3: gtest-extra-test
3/14 Test #3: gtest-extra-test ................. Passed 0.00 sec
Start 4: format-test
4/14 Test #4: format-test ...................... Passed 0.02 sec
Start 5: format-impl-test
5/14 Test #5: format-impl-test ................. Passed 0.00 sec
Start 6: ostream-test
6/14 Test #6: ostream-test ..................... Passed 0.00 sec
Start 7: printf-test
7/14 Test #7: printf-test ...................... Passed 0.00 sec
Start 8: string-test
8/14 Test #8: string-test ...................... Passed 0.00 sec
Start 9: time-test
9/14 Test #9: time-test ........................ Passed 0.00 sec
Start 10: util-test
10/14 Test #10: util-test ........................ Passed 0.00 sec
Start 11: macro-test
11/14 Test #11: macro-test ....................... Passed 0.00 sec
Start 12: custom-formatter-test
12/14 Test #12: custom-formatter-test ............ Passed 0.00 sec
Start 13: posix-mock-test
13/14 Test #13: posix-mock-test .................. Passed 0.00 sec
Start 14: posix-test
14/14 Test #14: posix-test ....................... Passed 0.00 sec
100% tests passed, 0 tests failed out of 14
Total Test time (real) = 0.06 sec
[sudo] password for alyssa:
[0/1] Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/local/lib/cmake/fmt/fmt-config.cmake
-- Up-to-date: /usr/local/lib/cmake/fmt/fmt-config-version.cmake
-- Up-to-date: /usr/local/lib/cmake/fmt/fmt-targets.cmake
-- Installing: /usr/local/lib/cmake/fmt/fmt-targets-release.cmake
-- Up-to-date: /usr/local/lib/libfmt.so.4.0.1
-- Up-to-date: /usr/local/lib/libfmt.so.4
-- Up-to-date: /usr/local/lib/libfmt.so
-- Up-to-date: /usr/local/include/fmt/container.h
-- Up-to-date: /usr/local/include/fmt/format.h
-- Up-to-date: /usr/local/include/fmt/format.cc
-- Up-to-date: /usr/local/include/fmt/ostream.h
-- Up-to-date: /usr/local/include/fmt/ostream.cc
-- Up-to-date: /usr/local/include/fmt/printf.h
-- Up-to-date: /usr/local/include/fmt/printf.cc
-- Up-to-date: /usr/local/include/fmt/string.h
-- Up-to-date: /usr/local/include/fmt/time.h
-- Up-to-date: /usr/local/include/fmt/posix.h
~/rainynite
Building lib2geom...
~/rainynite/lib2geom ~/rainynite
-- Boost version: 1.62.0
-- gtk+-2.0 Includes, Compile and Link Flags: NOT FOUND
-- gtkmm-2.4 Includes, Compile and Link Flags: NOT FOUND
CMake Warning (dev) at CMakeScripts/Config2GeomDepends.cmake:20 (IF):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "cairomm-1.0_FOUND" will no longer be dereferenced
when the policy is set to NEW. Since the policy is not set the OLD
behavior will be used.
Call Stack (most recent call first):
CMakeLists.txt:12 (INCLUDE)
This warning is for project developers. Use -Wno-dev to suppress it.
-- cairomm-1.0 Includes, Compile and Link Flags: FOUND
-- cairo Includes, Compile and Link Flags: FOUND
-- gsl Includes, Compile and Link Flags: NOT FOUND
-- pycairo Includes, Compile and Link Flags: NOT FOUND
-- Configuring done
CMake Error at src/toys/CMakeLists.txt:130 (ADD_LIBRARY):
Target "lpetoy" links to item " -lcairo" which has leading or trailing
whitespace. This is now an error according to policy CMP0004.
CMake Error at src/toys/CMakeLists.txt:134 (ADD_EXECUTABLE):
Target "lpe-test" links to item " -lcairo" which has leading or trailing
whitespace. This is now an error according to policy CMP0004.
CMake Error at src/toys/CMakeLists.txt:130 (ADD_LIBRARY):
Target "lpetoy" links to item " -lcairo" which has leading or trailing
whitespace. This is now an error according to policy CMP0004.
-- Generating done
-- Build files have been written to: /home/alyssa/rainynite/lib2geom/build
ninja: error: loading 'build.ninja': No such file or directory
alyssa@debian-stable:~/rainynite$ screenfetch
_,met$$$$$gg. alyssa@debian-stable
,g$$$$$$$$$$$$$$$P. OS: Debian 9.1 stretch
,g$$P"" """Y$$.". Kernel: x86_64 Linux 4.9.0-3-amd64
,$$P' `$$$. Uptime: 15m
',$$P ,ggs. `$$b: Packages: 1515
`d$$' ,$P"' . $$$ Shell: bash 4.4.12
$$P d$' , $$P Resolution: 1440x900
$$: $$. - ,d$$' DE: XFCE
$$\; Y$b._ _,d$P' WM: Xfwm4
Y$$. `.`"Y$$$$P"' WM Theme: Arc-Darker
`$$b "-.__ GTK Theme: Arc-Darker [GTK2]
`Y$$ Icon Theme: Adwaita
`Y$$. Font: Cantarell 10
`$$b. CPU: Intel Core i5-4250U CPU @ 2.6GHz
`Y$$b. RAM: 689MiB / 3896MiB
`"Y$b._
`""""
alyssa@debian-stable:~/rainynite$
```
Well, this isn't exactly RainyNite problem. Though i suppose there's still a problem that lib2geom toys aren't completely disabled.
Anyway, will fix lib2geom build files now so that even if they fail to build they fail with a better error message.
Well, this isn't exactly RainyNite problem. Though i suppose there's still a problem that lib2geom toys aren't completely disabled.
Anyway, will fix lib2geom build files now so that even if they fail to build they fail with a better error message.
Oh, and by the way, build will not work with CMake 3.7. At least 3.8 is required for CXX_STANDARD=17 to be allowed (see https://cmake.org/cmake/help/v3.8/prop_tgt/CXX_STANDARD.html). It is of course possible to disable that check and pass -std=c++1z manually and if your compiler supports required features it will work. But i would suggest trying to install cmake from testing first.
Oh, and by the way, build will not work with CMake 3.7. At least 3.8 is required for CXX_STANDARD=17 to be allowed (see https://cmake.org/cmake/help/v3.8/prop_tgt/CXX_STANDARD.html). It is of course possible to disable that check and pass `-std=c++1z` manually and if your compiler supports required features it will work. But i would suggest trying to install cmake from testing first.
Ok, so now (after adding some conditional compilations and cleanup) core can be built on Stretch. To do that, you'll only need cmake and clang-5.0 from Buster (g++ 6.3 doesn't have enough support and 7 is not easily installable). They can be installed without touching most of the system.
Will check studio tomorrow.
Ok, so now (after adding some conditional compilations and cleanup) core can be built on Stretch. To do that, you'll only need `cmake` and `clang-5.0` from Buster (g++ 6.3 doesn't have enough support and 7 is not easily installable). They can be installed without touching most of the system.
Will check studio tomorrow.
And of course it doesn't work: old moc doesn't like namespace a::b notation and there doesn't seem to be an easy way to install newer moc without risk of making large part of system testing.
make a hack script that replaces offending code and run it on systems with outdated moc
And of course it doesn't work: old moc doesn't like `namespace a::b` notation and there doesn't seem to be an easy way to install newer moc without risk of making large part of system testing.
So, possible options:
- try to patch old qt with https://github.com/qt/qtbase/commit/5675334b6e22786195fe69a1fc1f40c49aaea37c#diff-7680dae0477922e25856c03d1058d2b7 and hope that it works
- try to use https://github.com/woboq/moc-ng and hope it works
- make a hack script that replaces offending code and run it on systems with outdated moc
Actually, it works, it's just that in Gtk environment Qt widgets act differently (#56).
So, building kinda works now, i only have to add script into build process. The other problem would be that as of now it modifies sources (or, rather, headers) in-place, so committing them might be a little headache.
Actually, it works, it's just that in Gtk environment Qt widgets act differently (https://notabug.org/caryoscelus/rainynite-studio/issues/56).
So, building kinda works now, i only have to add script into build process. The other problem would be that as of now it modifies sources (or, rather, headers) in-place, so committing them might be a little headache.
Added source-fixing script into build process, so building using update_and_build.sh (or build_all.sh if you prefer to update sub-repos yourself) should work now. Please test if it works for you.
Added source-fixing script into build process, so building using `update_and_build.sh` (or `build_all.sh` if you prefer to update sub-repos yourself) should work now. Please test if it works for you.
Well, this isn't exactly RainyNite problem. Though i suppose there's still a problem that lib2geom toys aren't completely disabled.
Anyway, will fix lib2geom build files now so that even if they fail to build they fail with a better error message.
Oh, and by the way, build will not work with CMake 3.7. At least 3.8 is required for CXX_STANDARD=17 to be allowed (see https://cmake.org/cmake/help/v3.8/prop_tgt/CXX_STANDARD.html). It is of course possible to disable that check and pass
-std=c++1z
manually and if your compiler supports required features it will work. But i would suggest trying to install cmake from testing first.Ok, so now (after adding some conditional compilations and cleanup) core can be built on Stretch. To do that, you'll only need
cmake
andclang-5.0
from Buster (g++ 6.3 doesn't have enough support and 7 is not easily installable). They can be installed without touching most of the system.Will check studio tomorrow.
And of course it doesn't work: old moc doesn't like
namespace a::b
notation and there doesn't seem to be an easy way to install newer moc without risk of making large part of system testing.So, possible options:
Ok, building works with a hacky script, but critical features do not work :/
Actually, it works, it's just that in Gtk environment Qt widgets act differently (#56).
So, building kinda works now, i only have to add script into build process. The other problem would be that as of now it modifies sources (or, rather, headers) in-place, so committing them might be a little headache.
Added source-fixing script into build process, so building using
update_and_build.sh
(orbuild_all.sh
if you prefer to update sub-repos yourself) should work now. Please test if it works for you.