TALP-UPC / FreeLing

FreeLing project source code
Other
254 stars 96 forks source link

Not the same codebase for windows and unix? #63

Closed jgsogo closed 6 years ago

jgsogo commented 6 years ago

Hi!

I'm working around with CMake to make it more robust and compatible for windows and linux builds, but I have found that there is not the same codebase for Windows and Unix... example:

libfreeling in msvc provided projects doesn't compile corrector.cc but unix does... and in fact that file doesn't compile in msvc, and I think there are more like this. Is there any mechanical way to select which files should be in MSVC solution and which shouldn't?

Thanks!

lluisp commented 6 years ago

All files compiled in linux should be also compiled in windows. "corrector.cc" is not compiled because it was added after version 4.0 release, and msvc files are only updated when a release is launched. If the file does not compile in windows, it may be that it needs some minor adjustments. Please let me know and I'll try to fix it (or if you see something obvious, please go ahead)

jgsogo commented 6 years ago

Ok, so I will use the glob approach for CMake (read this: do not use glob), this way all files would be included and compiled in win and linux (I'm using a branch with travis and appveyor for countinuous integration). Nevertheless there could be some unrelated changes in an eventual pull-request:

I'll try to keep it tidy ^^ (next week I'll come back to this)

lluisp commented 6 years ago

uhm, that sounds a bit scary... I'd prefer not to add so many things... Is it possible to go without travis/appveyor ?

Also, I am more confortable listing the files, and not using glob (sometimes there are deprecated files around that you don't want to compile). I can provide the information you may need.

In any case, please do not send a pull request to master, let's use a different branch.

jgsogo commented 6 years ago

I'll do my best trying to keep it isolated, I'm using several branches to work on this issue. Anyway, once the pull-request is done, before merging it, we can work on it, make changes, switch target branch,...

lluisp commented 6 years ago

I just pushed a new version pf CMake files that will build a default freeling installation. It is basically your files, plus some programs for the required post-installation data hooks. I rewrote bash scripts to C++, so they can be run anywhere.

With this, the installation tree produced by cmake is identical to that produced by automake Can you check whether it works on windows?
If so, there will only remain some options to adapt, but that should be easy (and I will ponder whether they all are really needed).

happy new year :)

lluisp commented 6 years ago

I pushed a cmake settings that will allow full compilation on Windows Installing dependencies is a bit tricky, so I also put an INSTALL.windows file with detailed instructions on how to install dependencies and compile FreeLing

I tried on Windows 10 with MSVC 2015 and it works. Let me know if you try it.