Hello, I have been trying to adapt the Unix CMake files for the Windows port, but I have difficulties understanding the sources layout. I understand at least the difference between internal and external plugins, but what is in vm/intplugins? It seems that CMake looks for sources in a lot of directories, and that some of them are not used anymore. I have these directory layouts: platforms \-Cross \-plugins \-pluginA \-pluginB \-vm \-specificplatform \-plugins \-pluginA \-pluginB \-vm And for the generated sources directory: src \-pluginA \-pluginB \-vm Is that the definitive sources layout? Also, if you're interested in using CMake for Windows, should I assemble Unix and Windows instructions in the same files? Best regards, Geoffroy Couprie |
>I have been trying to adapt the Unix CMake files for the Windows port, nice!! If I am correct, when you generate sources with VMMaker you get something like this: \-src \-plugins <- external plugins \-pluginA \-pluginB \-vm <- interpreter, gc, etc. \intplugins <- internal plugings. Inside vm dir makes sense because they'll be statically linked to the VM. \-pluginC \-pluginD This is all generated from Slang. You may have some other part of some plugins in Cross/plugins if they have code directly written in C. Regards, Javier. On Tue, Apr 13, 2010 at 12:58 PM, Geoffroy Couprie <[hidden email]> wrote:
-- Javier Pimás Ciudad de Buenos Aires |
On 13 April 2010 19:21, Javier Pimás <[hidden email]> wrote: > >>I have been trying to adapt the Unix CMake files for the Windows port, > > nice!! > > If I am correct, when you generate sources with VMMaker you get something like this: > > \-src > \-plugins <- external plugins > \-pluginA > \-pluginB > \-vm <- interpreter, gc, etc. > \intplugins <- internal plugings. Inside vm dir makes sense because > they'll be statically linked to the VM. > \-pluginC > \-pluginD > \src \vm \pluginA ... \pluginX plugins.int plugins.ext > This is all generated from Slang. You may have some other part of some plugins in Cross/plugins if they have code directly written in C. > > > Regards, > Javier. > > > On Tue, Apr 13, 2010 at 12:58 PM, Geoffroy Couprie <[hidden email]> wrote: >> >> Hello, >> >> I have been trying to adapt the Unix CMake files for the Windows port, >> but I have difficulties understanding the sources layout. I understand >> at least the difference between internal and external plugins, but >> what is in vm/intplugins? It seems that CMake looks for sources in a >> lot of directories, and that some of them are not used anymore. I have >> these directory layouts: >> platforms >> \-Cross >> \-plugins >> \-pluginA >> \-pluginB >> \-vm >> \-specificplatform >> \-plugins >> \-pluginA >> \-pluginB >> \-vm >> >> And for the generated sources directory: >> src >> \-pluginA >> \-pluginB >> \-vm >> >> Is that the definitive sources layout? >> >> Also, if you're interested in using CMake for Windows, should I >> assemble Unix and Windows instructions in the same files? >> >> Best regards, >> >> Geoffroy Couprie > > > > -- > Javier Pimás > Ciudad de Buenos Aires > > -- Best regards, Igor Stasenko AKA sig. |
Maybe it's different in unix and windows. That's the layout I have in unix with recent squeak and pharo images. Are you generating for unix or windows? because CMake is currently used for unix (and mac I think). Regards, Javier. On Tue, Apr 13, 2010 at 2:55 PM, Igor Stasenko <[hidden email]> wrote:
-- Javier Pimás Ciudad de Buenos Aires |
On Tue, Apr 13, 2010 at 8:44 PM, Javier Pimás <[hidden email]> wrote: > > Maybe it's different in unix and windows. That's the layout I have in unix with recent squeak and pharo images. Are you generating for unix or windows? because CMake is currently used for unix (and mac I think). > It depends on the platform. Windows has vm/ pluginA/ pluginB/, Unix has vm/ plugins/, and MacOS has vm/intplugins/. Best regards, Geoffroy |
Hello, You'll find my work on the CMake files at http://eleves.ec-lille.fr/~couprieg/divers/patches.zip I put a CMakeLists.txt file just under the platforms/ directory, along with the cmake/ directory. These files are based on the unix ones. I modified them to change the source directory depending on the platform. I also modified the configure file accordingly, but i commented the code using subversion for my convenience during development (feel free to change it back). These CMake files are not perfect, it's just the beginning. First, I want to make sure that the unix port still builds with my file, and then, I'll go on with the config.cmake and build.cmake files for the plugins, and I'll clean CMakeLists.txt a bit. Feel free to comment, but note that I'm beginning with CMake, and that I don't write bash code very often. And please, try it with the unix port. I don't want to break everything :) Anyway, it works for me here (I can build a VM on Windows with the File, Security, LargeIntegers and MiscPrimitive plugins using MSYS+MinGW). Best regards, Geoffroy |
excellent news! Thanks Geoffroy. On Apr 17, 2010, at 1:23 AM, Geoffroy Couprie wrote: > > Hello, > > You'll find my work on the CMake files at > http://eleves.ec-lille.fr/~couprieg/divers/patches.zip > > I put a CMakeLists.txt file just under the platforms/ directory, along > with the cmake/ directory. These files are based on the unix ones. I > modified them to change the source directory depending on the > platform. I also modified the configure file accordingly, but i > commented the code using subversion for my convenience during > development (feel free to change it back). > > These CMake files are not perfect, it's just the beginning. First, I > want to make sure that the unix port still builds with my file, and > then, I'll go on with the config.cmake and build.cmake files for the > plugins, and I'll clean CMakeLists.txt a bit. > > Feel free to comment, but note that I'm beginning with CMake, and that > I don't write bash code very often. And please, try it with the unix > port. I don't want to break everything :) > > Anyway, it works for me here (I can build a VM on Windows with the > File, Security, LargeIntegers and MiscPrimitive plugins using > MSYS+MinGW). > > Best regards, > > Geoffroy |
In reply to this post by Geoffroy Couprie
Ping! I know everyone is busy, but could someone test these CMake files? I can't install a VM to build unix Squeak right now, but I'll do it in the future. I just want to know if it's still possible to create unix squeak with these files :) On Sat, Apr 17, 2010 at 1:23 AM, Geoffroy Couprie <[hidden email]> wrote: > Hello, > > You'll find my work on the CMake files at > http://eleves.ec-lille.fr/~couprieg/divers/patches.zip > > I put a CMakeLists.txt file just under the platforms/ directory, along > with the cmake/ directory. These files are based on the unix ones. I > modified them to change the source directory depending on the > platform. I also modified the configure file accordingly, but i > commented the code using subversion for my convenience during > development (feel free to change it back). > > These CMake files are not perfect, it's just the beginning. First, I > want to make sure that the unix port still builds with my file, and > then, I'll go on with the config.cmake and build.cmake files for the > plugins, and I'll clean CMakeLists.txt a bit. > > Feel free to comment, but note that I'm beginning with CMake, and that > I don't write bash code very often. And please, try it with the unix > port. I don't want to break everything :) > > Anyway, it works for me here (I can build a VM on Windows with the > File, Security, LargeIntegers and MiscPrimitive plugins using > MSYS+MinGW). > > Best regards, > > Geoffroy > |
On linux, configure fails: -- Configuring done CMake Error in CMakeLists.txt: Cannot find source file "aio.c". Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
aio.c is in .unix/vm/aio.c Cheers, Laurent Laffont On Thu, Apr 22, 2010 at 7:23 AM, Geoffroy Couprie <[hidden email]> wrote:
|
Hello, On Thu, Apr 22, 2010 at 7:56 AM, laurent laffont <[hidden email]> wrote: > > On linux, configure fails: > -- Configuring done > CMake Error in CMakeLists.txt: > Cannot find source file "aio.c". Tried extensions .c .C .c++ .cc .cpp .cxx > .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx > aio.c is in .unix/vm/aio.c Thank you for your answer! It is fixed in the new set of files: http://eleves.ec-lille.fr/~couprieg/divers/changes-08-05-10.tar.gz With these new files, I can now build the unix and win32 VM, from a linux host. The unix VM works, but the win32 one needs a few other changes to build, that I'll send with other patches. A few notes: -to build, you have to delete config.h from platforms/win32/vm, as it is now generated by cmake -for unix, use 'platforms/cmake/configure --src=<generated source relative path> --version=4.0.2 --generator="Unix Makefiles" ' -for win32, use 'CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ platforms/cmake/configure --src=<generated source relative path> --version=4.0.2 --host=i586-mingw32msvc --generator="Unix Makefiles" ' These files are not yet ready to be included in the sources, they still need some cleaning. But now, it works well :) For the ones that were talking about setting up a squeak buildbot, this will be useful! Again, please test it, and feel free to comment. Best regards, Geoffroy |
On Sat, May 08, 2010 at 04:14:47PM +0200, Geoffroy Couprie wrote: > > Hello, > > On Thu, Apr 22, 2010 at 7:56 AM, laurent laffont > <[hidden email]> wrote: > > > > On linux, configure fails: > > -- Configuring done > > CMake Error in CMakeLists.txt: > > ????Cannot find source file "aio.c". ??Tried extensions .c .C .c++ .cc .cpp .cxx > > ????.m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx > > aio.c is in??.unix/vm/aio.c > > Thank you for your answer! It is fixed in the new set of files: > http://eleves.ec-lille.fr/~couprieg/divers/changes-08-05-10.tar.gz > > With these new files, I can now build the unix and win32 VM, from a > linux host. The unix VM works, but the win32 one needs a few other > changes to build, that I'll send with other patches. > > A few notes: > -to build, you have to delete config.h from platforms/win32/vm, as it > is now generated by cmake > -for unix, use 'platforms/cmake/configure --src=<generated source > relative path> --version=4.0.2 --generator="Unix Makefiles" ' > -for win32, use 'CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ > platforms/cmake/configure --src=<generated source relative path> > --version=4.0.2 --host=i586-mingw32msvc --generator="Unix Makefiles" ' > > These files are not yet ready to be included in the sources, they > still need some cleaning. But now, it works well :) > > For the ones that were talking about setting up a squeak buildbot, > this will be useful! > > Again, please test it, and feel free to comment. Geoffroy, I have not tried your CMake build yet (sorry), but building a range of Windows and Unix VMs on a single build host sounds like a very useful thing. Well done! I'm curious what others think of the idea. Dave |
In reply to this post by Geoffroy Couprie
Thanks Geoffroy this is cool to see people helping on that part! Stef On May 8, 2010, at 4:14 PM, Geoffroy Couprie wrote: > > Hello, > > On Thu, Apr 22, 2010 at 7:56 AM, laurent laffont > <[hidden email]> wrote: >> >> On linux, configure fails: >> -- Configuring done >> CMake Error in CMakeLists.txt: >> Cannot find source file "aio.c". Tried extensions .c .C .c++ .cc .cpp .cxx >> .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx >> aio.c is in .unix/vm/aio.c > > Thank you for your answer! It is fixed in the new set of files: > http://eleves.ec-lille.fr/~couprieg/divers/changes-08-05-10.tar.gz > > With these new files, I can now build the unix and win32 VM, from a > linux host. The unix VM works, but the win32 one needs a few other > changes to build, that I'll send with other patches. > > A few notes: > -to build, you have to delete config.h from platforms/win32/vm, as it > is now generated by cmake > -for unix, use 'platforms/cmake/configure --src=<generated source > relative path> --version=4.0.2 --generator="Unix Makefiles" ' > -for win32, use 'CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ > platforms/cmake/configure --src=<generated source relative path> > --version=4.0.2 --host=i586-mingw32msvc --generator="Unix Makefiles" ' > > These files are not yet ready to be included in the sources, they > still need some cleaning. But now, it works well :) > > For the ones that were talking about setting up a squeak buildbot, > this will be useful! > > Again, please test it, and feel free to comment. > > Best regards, > > Geoffroy |
In reply to this post by David T. Lewis
On 8 May 2010 18:21, David T. Lewis <[hidden email]> wrote: > > On Sat, May 08, 2010 at 04:14:47PM +0200, Geoffroy Couprie wrote: >> >> Hello, >> >> On Thu, Apr 22, 2010 at 7:56 AM, laurent laffont >> <[hidden email]> wrote: >> > >> > On linux, configure fails: >> > -- Configuring done >> > CMake Error in CMakeLists.txt: >> > ????Cannot find source file "aio.c". ??Tried extensions .c .C .c++ .cc .cpp .cxx >> > ????.m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx >> > aio.c is in??.unix/vm/aio.c >> >> Thank you for your answer! It is fixed in the new set of files: >> http://eleves.ec-lille.fr/~couprieg/divers/changes-08-05-10.tar.gz >> >> With these new files, I can now build the unix and win32 VM, from a >> linux host. The unix VM works, but the win32 one needs a few other >> changes to build, that I'll send with other patches. >> >> A few notes: >> -to build, you have to delete config.h from platforms/win32/vm, as it >> is now generated by cmake >> -for unix, use 'platforms/cmake/configure --src=<generated source >> relative path> --version=4.0.2 --generator="Unix Makefiles" ' >> -for win32, use 'CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ >> platforms/cmake/configure --src=<generated source relative path> >> --version=4.0.2 --host=i586-mingw32msvc --generator="Unix Makefiles" ' >> >> These files are not yet ready to be included in the sources, they >> still need some cleaning. But now, it works well :) >> >> For the ones that were talking about setting up a squeak buildbot, >> this will be useful! >> >> Again, please test it, and feel free to comment. > > Geoffroy, > > I have not tried your CMake build yet (sorry), but building a range > of Windows and Unix VMs on a single build host sounds like a very > useful thing. Well done! I'm curious what others think of the idea. > I think its a good idea of having a least common denominator for building VMs. > Dave > > -- Best regards, Igor Stasenko AKA sig. |
Hello, On Sat, May 8, 2010 at 6:50 PM, Igor Stasenko <[hidden email]> wrote: > > On 8 May 2010 18:21, David T. Lewis <[hidden email]> wrote: >> >> Geoffroy, >> >> I have not tried your CMake build yet (sorry), but building a range >> of Windows and Unix VMs on a single build host sounds like a very >> useful thing. Well done! I'm curious what others think of the idea. >> > > I think its a good idea of having a least common denominator for building VMs. > Then, I'll continue to fix my CMake scripts :) Can I send my patches for the rest of the sources right now? I'm not using the same compiler version for the win32 VM (I have gcc 4.2.1 here), and it doesn't build out of the box. On the bright side, I think I can remove a lot of code from the VM, because MinGW fixed a lot of their headers since gcc 3.4. Also, now DirectDraw and DirectInput headers and import lib (from DirectX 8) are provided by MinGW. Any good reason to keep the Squeak Win32 tools package, now that it's obsolete? What are the supported Windows versions? I could clean up some code if I remove parts specific to win95 and win2000. Best regards, Geoffroy |
Thanks Geoffroy. I hope that your energy will be used by VM maintainers. Stef > Hello, > > On Sat, May 8, 2010 at 6:50 PM, Igor Stasenko <[hidden email]> wrote: >> >> On 8 May 2010 18:21, David T. Lewis <[hidden email]> wrote: >>> >>> Geoffroy, >>> >>> I have not tried your CMake build yet (sorry), but building a range >>> of Windows and Unix VMs on a single build host sounds like a very >>> useful thing. Well done! I'm curious what others think of the idea. >>> >> >> I think its a good idea of having a least common denominator for building VMs. >> > > Then, I'll continue to fix my CMake scripts :) > > Can I send my patches for the rest of the sources right now? I'm not > using the same compiler version for the win32 VM (I have gcc 4.2.1 > here), and it doesn't build out of the box. On the bright side, I > think I can remove a lot of code from the VM, because MinGW fixed a > lot of their headers since gcc 3.4. > > Also, now DirectDraw and DirectInput headers and import lib (from > DirectX 8) are provided by MinGW. Any good reason to keep the Squeak > Win32 tools package, now that it's obsolete? > > What are the supported Windows versions? I could clean up some code if > I remove parts specific to win95 and win2000. > > Best regards, > > Geoffroy |
Hello, Here is the latest set of files for CMake: http://eleves.ec-lille.fr/~couprieg/divers/changes-16-05-10.tar.gz (you have to remove platforms/win32/vm/config.h to make it build) I tried to remove the dependency on the Squeak-win2-tools package. The Direct3D code still uses a lot of DirectX 7 structures, and the recent MinGW toolchain provides DirectX 8, so the B3DAccelerator plugin doesn't build right now. If it's ok, I'll send other patches to make it work with the new version. Otherwise, it's possible to modify config.cmake for B3DAccelerator to use DirectX 7. Could these patches be included now? The Unix VM builds without any problem, so it can become the main way to build it (just replace platforms/unix/cmake/configure by platforms/cmake/configure in the tutorials). There may still be some problems with the Windows build, but I'll send more patches once these are pushed in the svn :) Best regards, Geoffroy |
On Sun, May 16, 2010 at 11:15:50PM +0200, Geoffroy Couprie wrote: > > Hello, > > Here is the latest set of files for CMake: > http://eleves.ec-lille.fr/~couprieg/divers/changes-16-05-10.tar.gz > (you have to remove platforms/win32/vm/config.h to make it build) > > I tried to remove the dependency on the Squeak-win2-tools package. The > Direct3D code still uses a lot of DirectX 7 structures, and the recent > MinGW toolchain provides DirectX 8, so the B3DAccelerator plugin > doesn't build right now. If it's ok, I'll send other patches to make > it work with the new version. Otherwise, it's possible to modify > config.cmake for B3DAccelerator to use DirectX 7. > > Could these patches be included now? The Unix VM builds without any > problem, so it can become the main way to build it (just replace > platforms/unix/cmake/configure by platforms/cmake/configure in the > tutorials). There may still be some problems with the Windows build, > but I'll send more patches once these are pushed in the svn :) Hi Geoffroy, Thanks for your work on this. I think that Ian and Andreas will need to respond with respect to inclusion in the platforms sources. Ian originated the CMake work and is responsible for anything that might be included in the unix tree. Andreas is responsible for the Windows VM and build process, and I don't know if he has a view concerning use of CMake. Dave |
In reply to this post by Geoffroy Couprie
On Sun, May 16, 2010 at 11:15 PM, Geoffroy Couprie <[hidden email]> wrote:
Hi Geoffroy. This is cool work. I cannot help you in the details of how to commit that in SVN as I have no idea. Listen to David. Now...I have a couple of ideas: 1) regardless that, it would be really really cool if you can document all this in the pharo collaborative book. As you can see there is already a chapter for VM http://book.pharo-project.org/book/Virtual-Machine/ and the windows part is empty: http://book.pharo-project.org/book/Virtual-Machine/Building/BuildVMOnWindows/ So...we can write the two possibilities to compile in Windows: the standard one and this new one using CMake. You can start writing the one of CMake :) If you want, please just let us know and we create a user for you. 2) In addition, I think it would be a good idea to have a Git for scripts for the VM. If Squeak VM developers like them, they can also include it in the svn. Laurent Laffont already has a git repository with scripts like easy_squeakvm or something like that. So, you may want to commit your code there too. 3) What about integrating like easy_squeakvm with this ? or do a easy_squeakvm version of CMake for winwows ? I would love to do for example: ./easy_squeakvm.sh --os=Windows or ./easy_squeakvm.sh --os=Unix 4) Would be really great to have a Screencast about how to compile windows with CMake :) Cheers and continue pushing. Mariano Best regards, |
easy_squeakvm here http://github.com/lolgzs/easy_squeakvm. It's github so you can fork it easily (I would love squeakvm sources on github :). Don't hesitate to ask for write access.
Cheers, Laurent Laffont http://pharocasts.blogspot.com/ http://magaloma.blogspot.com/ On Mon, May 17, 2010 at 5:37 PM, Mariano Martinez Peck <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |