CMake for the masses
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
What the hell, no FFMpeg
That message in your cmake output to console is troubling. From the cache it looks like all the main stuff is found, but yet it still says the include dir is not found. You do have all the -dev packages for those 3 libs i mentioned installed right? I may have to wait until i get home to verify what my own run of cmake detects in detail so i can compare to yours.
Have you tried running that cmake ...ie, building vegastrike ... to see if it builds and then if it does, run ldd on it to see if it's linked to libavcodec and such. I know mine does get linked in.
That message in your cmake output to console is troubling. From the cache it looks like all the main stuff is found, but yet it still says the include dir is not found. You do have all the -dev packages for those 3 libs i mentioned installed right? I may have to wait until i get home to verify what my own run of cmake detects in detail so i can compare to yours.
Have you tried running that cmake ...ie, building vegastrike ... to see if it builds and then if it does, run ldd on it to see if it's linked to libavcodec and such. I know mine does get linked in.
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
ok, thanks. I do have the -dev of all three libraries. As for the non-dev packages, I had a hard decision to make with one of them; --there was a xxx49 and a xxx-extras-49, and they were mutually incompatible; I installed the extras.safemode wrote:What the hell, no FFMpeg
That message in your cmake output to console is troubling. From the cache it looks like all the main stuff is found, but yet it still says the include dir is not found. You do have all the -dev packages for those 3 libs i mentioned installed right? I may have to wait until i get home to verify what my own run of cmake detects in detail so i can compare to yours.
Donno know how to build. What's the command? Cmake's help is inscrutable.Have you tried running that cmake ...ie, building vegastrike ... to see if it builds and then if it does, run ldd on it to see if it's linked to libavcodec and such. I know mine does get linked in.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
cmake is analogous to ./configure just type make like you would after ./configure
cmake creates build files. Be it automake, visual C++, etc. That's why it's so important we move as many people over to it early, because the intention is to replace having to maintain build files for each arch separately and instead maintain them all from a single cmake setup.
Once you get the hang of the fundamentals of cmake, it's incredibly easy to maintain and extend it.
Just remember, run cmake from outside of your source tree. cmake really really doesn't want you to pollute the source tree it's reading from. So just create a directory from somewhere and feed it the path to your source tree and run make from within that directory you created.
cmake creates build files. Be it automake, visual C++, etc. That's why it's so important we move as many people over to it early, because the intention is to replace having to maintain build files for each arch separately and instead maintain them all from a single cmake setup.
Once you get the hang of the fundamentals of cmake, it's incredibly easy to maintain and extend it.
Just remember, run cmake from outside of your source tree. cmake really really doesn't want you to pollute the source tree it's reading from. So just create a directory from somewhere and feed it the path to your source tree and run make from within that directory you created.
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Nice colors!
(Seems faster, too; though I'm sure it's just me not having consumed enough caffeine this am.)
(Seems faster, too; though I'm sure it's just me not having consumed enough caffeine this am.)
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Lots of warnings...; but I guess that's what you're working on in your branch, so I'd better not
work on them, right?
work on them, right?
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Done.
Code: Select all
~/vs/cmake/vegastrike$ ldd vegastrike
linux-vdso.so.1 => (0x00007fff6e7ff000)
libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00007f5b5a369000)
libboost_python-py26.so.1.40.0 => /usr/lib/libboost_python-py26.so.1.40.0 (0x00007f5b5a118000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f5b59ea7000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f5b5a831000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f5b59c9e000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f5b59a83000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f5b5974d000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f5b5953b000)
libglut.so.3 => /usr/lib/libglut.so.3 (0x00007f5b592f7000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0x00007f5b590de000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f5b58ed3000)
libopenal.so.1 => /usr/lib/libopenal.so.1 (0x00007f5b58bb2000)
libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x00007f5b5891b000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f5b586ff000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f5b584d2000)
libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00007f5b582ca000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f5b580c4000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00007f5b57e9f000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00007f5b57c78000)
libz.so.1 => /lib/libz.so.1 (0x00007f5b57a61000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00007f5b57837000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f5b57633000)
libutil.so.1 => /lib/libutil.so.1 (0x00007f5b57430000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f5b5711f000)
libm.so.6 => /lib/libm.so.6 (0x00007f5b56e9b000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f5b56c84000)
libc.so.6 => /lib/libc.so.6 (0x00007f5b56914000)
librt.so.1 => /lib/librt.so.1 (0x00007f5b5670c000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x00007f5b553e6000)
libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0x00007f5b552e3000)
libuuid.so.1 => /lib/libuuid.so.1 (0x00007f5b550de000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f5b54ec2000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f5b54cbe000)
libXt.so.6 => /usr/lib/libXt.so.6 (0x00007f5b54a58000)
libasound.so.2 => /usr/lib/libasound.so.2 (0x00007f5b54777000)
libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00007f5b544ec000)
libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00007f5b542e2000)
libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00007f5b540c7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5b5a80d000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f5b53ec1000)
Code: Select all
~/vs/cmake/vegastrike$ ldd vegaserver
linux-vdso.so.1 => (0x00007fffe0bbb000)
libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00007f76f3d4e000)
libboost_python-py26.so.1.40.0 => /usr/lib/libboost_python-py26.so.1.40.0 (0x00007f76f3afd000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f76f388c000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f76f4216000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f76f3683000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f76f3468000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f76f3132000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f76f2f20000)
libglut.so.3 => /usr/lib/libglut.so.3 (0x00007f76f2cdc000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0x00007f76f2ac3000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f76f28b8000)
libopenal.so.1 => /usr/lib/libopenal.so.1 (0x00007f76f2597000)
libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x00007f76f2300000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f76f20e4000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f76f1eb7000)
libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00007f76f1caf000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f76f1aa9000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00007f76f1884000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00007f76f165d000)
libz.so.1 => /lib/libz.so.1 (0x00007f76f1446000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00007f76f121c000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f76f1018000)
libutil.so.1 => /lib/libutil.so.1 (0x00007f76f0e15000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f76f0b04000)
libm.so.6 => /lib/libm.so.6 (0x00007f76f0880000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f76f0669000)
libc.so.6 => /lib/libc.so.6 (0x00007f76f02f9000)
librt.so.1 => /lib/librt.so.1 (0x00007f76f00f1000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x00007f76eedcb000)
libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0x00007f76eecc8000)
libuuid.so.1 => /lib/libuuid.so.1 (0x00007f76eeac3000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f76ee8a7000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f76ee6a3000)
libXt.so.6 => /usr/lib/libXt.so.6 (0x00007f76ee43d000)
libasound.so.2 => /usr/lib/libasound.so.2 (0x00007f76ee15c000)
libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00007f76eded1000)
libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00007f76edcc7000)
libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00007f76edaac000)
/lib64/ld-linux-x86-64.so.2 (0x00007f76f41f2000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f76ed8a6000)
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
ok, so you dont have any ffmpeg libs linked in because it failed to find a header it was looking for.
If you have all the pkgs mentioned installed, then i'll need to verify the paths of the various detected headers and libs are so i can compare them to what you have and see if this is an issue with a missing standard search path or if you're missing something or if mine is detecting a self-compiled header in /usr/local and not using a distro installed header (that may be in a non-standard type location).
For now, i would not worry about it. The only animation we have in the game is the video instructor guy when you start a new game. If you can see him (shows up as a com window popup in your cockpit) then i guess we currenly dont use ffmpeg for anything at the moment. I wont be back home at the computer for 6 hours.
Do you notice if cmake build takes less time than autoconf's? such discrepencies are possible due to how i have cmake organize it's static libs vs how we have autoconf's
If you have all the pkgs mentioned installed, then i'll need to verify the paths of the various detected headers and libs are so i can compare them to what you have and see if this is an issue with a missing standard search path or if you're missing something or if mine is detecting a self-compiled header in /usr/local and not using a distro installed header (that may be in a non-standard type location).
For now, i would not worry about it. The only animation we have in the game is the video instructor guy when you start a new game. If you can see him (shows up as a com window popup in your cockpit) then i guess we currenly dont use ffmpeg for anything at the moment. I wont be back home at the computer for 6 hours.
Do you notice if cmake build takes less time than autoconf's? such discrepencies are possible due to how i have cmake organize it's static libs vs how we have autoconf's
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Yeah, I do see the guy's animation when I start a new game; it probably uses multiple images rather than ffmpeg.
And yes; I'm pretty sure it took a lot less time than autotools to build, though I didn't time it.
And yes; I'm pretty sure it took a lot less time than autotools to build, though I didn't time it.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
What cmake builds under by default is -O0, maintainer mode. This is basically the baseline. If it fails to build here, then we know it's bad code and nothing to do with the compiler.
You can change your mode via either ccmake in your build dir or running cmake -i <path-to-source> and hitting enter until you reach Build target (or Build mode), it will be default Maintainer, but you can type in Release and it will then give you the CXXFLAGS it will use, you can customize this too. Release build flags default to -O2 and with debug symbols (though, not full debug symbols).
I usually remove the debug symbols when i want to test out a release build. Brings the VS bin down to about 7.5MB after being stripped. You can expect the regular Maintainer mode build to be about 12MB after stripping. at least in 64bit land.
You can change your mode via either ccmake in your build dir or running cmake -i <path-to-source> and hitting enter until you reach Build target (or Build mode), it will be default Maintainer, but you can type in Release and it will then give you the CXXFLAGS it will use, you can customize this too. Release build flags default to -O2 and with debug symbols (though, not full debug symbols).
I usually remove the debug symbols when i want to test out a release build. Brings the VS bin down to about 7.5MB after being stripped. You can expect the regular Maintainer mode build to be about 12MB after stripping. at least in 64bit land.
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Code: Select all
Couldn't find any package matching "ccmake". However, the following
packages contain "ccmake" in their description:
cmake-curses-gui xutils-dev
No packages will be installed, upgraded, or removed.
Default is O3 right now for Release.
No way to copy the flags and edit them...
Gazillions of pointer aliasing warnings in the collide library, with O3.
Ctrl-C.
Running cmake -i again, to choose Release with debug (whose default is O2).
Uh, no; RelWithDebInfo's default is -O0
There should be a better way of changing optimization level than this cmake -i monstruosity...
Building, anyways; not sure what for, now.
EDIT:
Question: Is cmake configured to build --with-data-dir or something? I don't understand... I tried, just for the
hell of it, double-clicking on vegastrike in the cmake build folder, expecting the engine to crash from not
knowing where the game data is; but --to my utter amazement--, the game started normally !?!?!?!
EDIT2:
Crapped out:
Code: Select all
In file included from /usr/include/boost/python/object/function_handle.hpp:8,
from /usr/include/boost/python/converter/arg_to_python.hpp:19,
from /usr/include/boost/python/call.hpp:15,
from /usr/include/boost/python/object_core.hpp:12,
from /usr/include/boost/python/object.hpp:9,
from /home/d/vs/repo/trunk/vegastrike/src/python/python_class.h:25,
from /home/d/vs/repo/trunk/vegastrike/src/python/unit_exports.h:1,
from /home/d/vs/repo/trunk/vegastrike/src/python/unit_exports1.cpp:3:
/usr/include/boost/python/detail/caller.hpp: In static member function ‘static const PyTypeObject* boost::python::detail::converter_target_type<ResultConverter>::get_pytype() [with ResultConverter = boost::python::to_python_value<const QVector&>]’:
/usr/include/boost/python/detail/caller.hpp:242: instantiated from ‘static boost::python::detail::py_func_sig_info boost::python::detail::caller_arity<1u>::impl<F, Policies, Sig>::signature() [with F = QVector (UnitWrapper::*)(), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector2<QVector, UnitWrapper&>]’
/usr/include/boost/python/object/py_function.hpp:48: instantiated from ‘boost::python::detail::py_func_sig_info boost::python::objects::caller_py_function_impl<Caller>::signature() const [with Caller = boost::python::detail::caller<QVector (UnitWrapper::*)(), boost::python::default_call_policies, boost::mpl::vector2<QVector, UnitWrapper&> >]’
/home/d/vs/repo/trunk/vegastrike/src/python/unit_exports.h:91: instantiated from here
/usr/include/boost/python/detail/caller.hpp:102: error: ‘struct boost::python::detail::caller_arity<1u>::impl<F, Policies, Sig>::operator()(PyObject*, PyObject*) [with F = QVector (UnitWrapper::*)(), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector2<QVector, UnitWrapper&>]::result_converter’ has no member named ‘get_pytype’
/usr/include/boost/python/detail/caller.hpp: In static member function ‘static const PyTypeObject* boost::python::detail::converter_target_type<ResultConverter>::get_pytype() [with ResultConverter = boost::python::to_python_value<const Vector&>]’:
/usr/include/boost/python/detail/caller.hpp:242: instantiated from ‘static boost::python::detail::py_func_sig_info boost::python::detail::caller_arity<2u>::impl<F, Policies, Sig>::signature() [with F = Vector (UnitWrapper::*)(UnitWrapper), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector3<Vector, UnitWrapper&, UnitWrapper>]’
/usr/include/boost/python/object/py_function.hpp:48: instantiated from ‘boost::python::detail::py_func_sig_info boost::python::objects::caller_py_function_impl<Caller>::signature() const [with Caller = boost::python::detail::caller<Vector (UnitWrapper::*)(UnitWrapper), boost::python::default_call_policies, boost::mpl::vector3<Vector, UnitWrapper&, UnitWrapper> >]’
/home/d/vs/repo/trunk/vegastrike/src/python/unit_exports.h:91: instantiated from here
/usr/include/boost/python/detail/caller.hpp:102: error: ‘struct boost::python::detail::caller_arity<2u>::impl<F, Policies, Sig>::operator()(PyObject*, PyObject*) [with F = Vector (UnitWrapper::*)(UnitWrapper), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector3<Vector, UnitWrapper&, UnitWrapper>]::result_converter’ has no member named ‘get_pytype’
make[2]: *** [CMakeFiles/engine_com.dir/src/python/unit_exports1.o] Error 1
make[1]: *** [CMakeFiles/engine_com.dir/all] Error 2
make: *** [all] Error 2
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
ccmake is the preferred way to really getting into customizing it. It's much easier than cmake -i .
your data dir is saved in your config file i believe. after you first run it.
But there are numerous default lookups vegastrike has to finding it. If you have it in some "standard" path, it will find it without running vs within the data dir.
Time to try compiling under python 2.5
Last time the python was edited really for a version of python was 2.3, 2.4 and 2.5 worked out of the box. 2.6 may be another story. Only way to know is to use 2.5 and see if it crashes.
Note: I use 2.5 and i've never had python crap out on me.
edit, wait was that build from some build you modified the CXXFLAGS from? you need the -DNO_PY_SIGNATURES or whatever flag .. i thought i added them to every build type we define. You may have selected a build type we dont currently define but may be some default standard type cmake supports. We do "Maintainer" "Release" and "Debug" i believe.
your data dir is saved in your config file i believe. after you first run it.
But there are numerous default lookups vegastrike has to finding it. If you have it in some "standard" path, it will find it without running vs within the data dir.
Time to try compiling under python 2.5
Last time the python was edited really for a version of python was 2.3, 2.4 and 2.5 worked out of the box. 2.6 may be another story. Only way to know is to use 2.5 and see if it crashes.
Note: I use 2.5 and i've never had python crap out on me.
edit, wait was that build from some build you modified the CXXFLAGS from? you need the -DNO_PY_SIGNATURES or whatever flag .. i thought i added them to every build type we define. You may have selected a build type we dont currently define but may be some default standard type cmake supports. We do "Maintainer" "Release" and "Debug" i believe.
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
So, which should I install?; cmake-curses-gui?, or xutils-dev? There's no "ccmake" in the repos I got in aptitude.safemode wrote:ccmake is the preferred way to really getting into customizing it. It's much easier than cmake -i .
This could be bad for someone who likes to play all the vs mods.your data dir is saved in your config file i believe. after you first run it.
But there are numerous default lookups vegastrike has to finding it. If you have it in some "standard" path, it will find it without running vs within the data dir.
Before you forget, the Release default is -O3; needs to be -O2 or vegaserver segfaults.Time to try compiling under python 2.5
Last time the python was edited really for a version of python was 2.3, 2.4 and 2.5 worked out of the box. 2.6 may be another story. Only way to know is to use 2.5 and see if it crashes.
Note: I use 2.5 and i've never had python crap out on me.
I don't know where to change it, or else I'd be doing it myself.
Yes, I picked RelWithDebInfo; I thought that's what you meant you used.edit, wait was that build from some build you modified the CXXFLAGS from? you need the -DNO_PY_SIGNATURES or whatever flag .. i thought i added them to every build type we define. You may have selected a build type we dont currently define but may be some default standard type cmake supports. We do "Maintainer" "Release" and "Debug" i believe.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
cmake-curses-gui is the one you want. this will give you ccmake. which is very cool if you ever need to veer from defaults. Though,i haven't used it in a while. I believe you use it in-place of cmake ...rather than after. so you would do ccmake <path to source> rather than cmake.chuck_starchaser wrote:So, which should I install?; cmake-curses-gui?, or xutils-dev? There's no "ccmake" in the repos I got in aptitude.safemode wrote:ccmake is the preferred way to really getting into customizing it. It's much easier than cmake -i .
This could be bad for someone who likes to play all the vs mods.your data dir is saved in your config file i believe. after you first run it.
But there are numerous default lookups vegastrike has to finding it. If you have it in some "standard" path, it will find it without running vs within the data dir.
mods will behave as normal, because those mods have means of executing vegastrike so it finds their config first. if you have multiple mods installed, you can't expect vegastrike to know which one you happen to want to play magically. It just has some default lookups and it's config file to go by. One can't supply it with more than one data dir. There is a mod-dir but this can only be overloaded by one mod.
Otherwise you need a seperate data dir for each mod and have to execute it from there.
There's nothing wrong with this setup, it's been like this forever.
in cmakelists.txt down near the bottom line 476 and 479, just change -O3 to -O2 and get rid of the -g3 while you're at it.Before you forget, the Release default is -O3; needs to be -O2 or vegaserver segfaults.Time to try compiling under python 2.5
Last time the python was edited really for a version of python was 2.3, 2.4 and 2.5 worked out of the box. 2.6 may be another story. Only way to know is to use 2.5 and see if it crashes.
Note: I use 2.5 and i've never had python crap out on me.
I don't know where to change it, or else I'd be doing it myself.
That error is almost always the result of the PY_SIGNATURES define not being set. If you have that as an active CXXFLAG when you compile that file that gets the error ....then i wonder if python 2.6 changed, but since you built it before just fine, then i'm wondering if you may have accidentally cleared the CXXFLAGS following the choosing of RelWithDebInfo or whichever mode you chose when you got that error.Yes, I picked RelWithDebInfo; I thought that's what you meant you used.edit, wait was that build from some build you modified the CXXFLAGS from? you need the -DNO_PY_SIGNATURES or whatever flag .. i thought i added them to every build type we define. You may have selected a build type we dont currently define but may be some default standard type cmake supports. We do "Maintainer" "Release" and "Debug" i believe.
I know the cmakelist.txt file has it listed for all target modes. but cmake -i will ask you to modify those flags.
You can probably skip the -i mode of cmake and just use
cmake -DCMAKE_BUILD_TYPE=Release <path to source>
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Got it. Used it.safemode wrote:cmake-curses-gui is the one you want. this will give you ccmake. which is very cool if you ever need to veer from defaults. Though,i haven't used it in a while. I believe you use it in-place of cmake ...rather than after. so you would do ccmake <path to source> rather than cmake.
Gottcha.mods will behave as normal, because those mods have means of executing vegastrike so it finds their config first. if you have multiple mods installed, you can't expect vegastrike to know which one you happen to want to play magically. It just has some default lookups and it's config file to go by. One can't supply it with more than one data dir. There is a mod-dir but this can only be overloaded by one mod.
Done. Building for Release now. If it works, I'll commit CMakeLists.txt.in cmakelists.txt down near the bottom line 476 and 479, just change -O3 to -O2 and get rid of the -g3 while you're at it.
Huge number of warnings about aliasing strict rule violations in the collide library, BTW,
Code: Select all
... dereferencing type-punned pointer will break strict-aliasing rules
No idea. Not intentionally. And I don't think so, I only changed one thing; the target; then pressed enter until I was out of the monster's grip.That error is almost always the result of the PY_SIGNATURES define not being set. If you have that as an active CXXFLAG when you compile that file that gets the error ....then i wonder if python 2.6 changed, but since you built it before just fine, then i'm wondering if you may have accidentally cleared the CXXFLAGS following the choosing of RelWithDebInfo or whichever mode you chose when you got that error.
Ok. I just used ccmake and it seems to work, tho.I know the cmakelist.txt file has it listed for all target modes. but cmake -i will ask you to modify those flags.
You can probably skip the -i mode of cmake and just use
cmake -DCMAKE_BUILD_TYPE=Release <path to source>
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
ok.
about the warning:
yea, i'll have to go look into what it is complaining about. Saw it last night but couldn't get into it. I usually just build with Maintainer mode (-O0). Those warnings dont get generated there, so it's related to something turned on by -O2. probably a minor edit that just needs to be applied all over the place.
about the warning:
yea, i'll have to go look into what it is complaining about. Saw it last night but couldn't get into it. I usually just build with Maintainer mode (-O0). Those warnings dont get generated there, so it's related to something turned on by -O2. probably a minor edit that just needs to be applied all over the place.
Ed Sweetman endorses this message.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Re: CMake for the masses
Code: Select all
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h: In function ‘bool IsNAN(float)’:
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h:30: warning: dereferencing type-punned pointer will break strict-aliasing rules
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h: In function ‘bool IsIndeterminate(float)’:
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h:31: warning: dereferencing type-punned pointer will break strict-aliasing rules
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h: In function ‘bool IsPlusInf(float)’:
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h:32: warning: dereferencing type-punned pointer will break strict-aliasing rules
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h: In function ‘bool IsMinusInf(float)’:
/home/d/vs/repo/trunk/vegastrike/src/cmd/collide2/Ice/IceFPU.h:33: warning: dereferencing type-punned pointer will break strict-aliasing rules
Code: Select all
//! Integer representation of a floating-point value.
#define IR(x) ((udword&)(x))
//! Signed integer representation of a floating-point value.
#define SIR(x) ((sdword&)(x))
//! Absolute integer representation of a floating-point value
#define AIR(x) (IR(x)&0x7fffffff)
//! Floating-point representation of an integer value.
#define FR(x) ((float&)(x))
//! Is the float valid ?
inline_ bool IsNAN(float value) { return (IR(value)&0x7f800000) == 0x7f800000; }
inline_ bool IsIndeterminate(float value) { return IR(value) == 0xffc00000; }
inline_ bool IsPlusInf(float value) { return IR(value) == 0x7f800000; }
inline_ bool IsMinusInf(float value) { return IR(value) == 0xff800000; }
What the hell?
Aren't there standard float tests in math.h? Why are these guys rolling their own?
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Elite
- Posts: 7243
- Joined: Mon Apr 18, 2005 2:40 pm
- Location: LS87, Buenos Aires, República Argentina
Re: CMake for the masses
Shouldn't cmake build optimized binaries by default?
Almost all ./configure && make setups do that, because it's easy for the developer to add a flag to build a debug version but not so easy for a regular user to add the flag to build an optimized version.
Besides, vegastrike is unplayable in -O0. I usually build with optimizations AND debugging symbols, and just live with the mess it creates. Because it sometimes drops below 1 FPS without optimizations on heavy systems.
Almost all ./configure && make setups do that, because it's easy for the developer to add a flag to build a debug version but not so easy for a regular user to add the flag to build an optimized version.
Besides, vegastrike is unplayable in -O0. I usually build with optimizations AND debugging symbols, and just live with the mess it creates. Because it sometimes drops below 1 FPS without optimizations on heavy systems.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
Re: CMake for the masses
that can be changed if we want it to.. it's set in the cmakelist.txt file.
Maintainer mode was chosen i guess as the safest settings and least amount of compiler version specific issues.
Maintainer mode was chosen i guess as the safest settings and least amount of compiler version specific issues.
Ed Sweetman endorses this message.