> On 10 Aug 2015, at 1:00 am, jan i <j...@apache.org> wrote:
> 
> On 9 August 2015 at 19:42, Dennis E. Hamilton <dennis.hamil...@acm.org>
> wrote:
> 
>> The exclusion of build-tool artifacts is more a safeguard against
>> developers doing IDE editing and testing in the tree in inappropriate
>> places, just like the "~" case but more serious.
>> 
> a lot more serious....e.g. a .sln file can only be there if you ask cmake
> to generate it.
> 
> 
>> 
>> I eliminated those likely suspects because GitHub has found it important.
>> I included it in .gitignore as a precautionary reminder.  I did not bring
>> back in all other cases.  But I know Visual Studio builds are sort of
>> encouraged for Windows.
>> 
>> I am not attached to doing that.  It does strike me as harmless though.
>> 
> I feel strongly about it, because you supress a signal that the system is
> being build wrongly.
> Visual studio uses the sln directory (and subdirs) for all its files (with
> our current cmake), so it is a real error if we see them elsewhere,
> something the developer should see and not be silently ignored.
> 
> I read peter as also being against having them in .gitignore, so if you
> are not attached to it, please revert that part (together with iconv.txt).

Yes; CMake is supposed to be run outside of the source directory. If you run it 
inside the source directory, and do a “git status”, then these will show up as 
“untracked files”. These serve as an easy-to-see warning.

In by build directory (inside the root of the repository), with files generated 
for Xcode, here’s what I currently have:

CMakeCache.txt
CMakeFiles/
CMakeScripts/
Corinthia.build/
Corinthia.xcodeproj/
DerivedData/
DocFormats/
cmake_install.cmake
consumers/
experiments/

If I run cmake -G Xcode . inside the root of the repository, without yet 
building anything, here’s what I see in git status:

On branch master
Your branch is up-to-date with 'apache/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        CMakeCache.txt
        CMakeFiles/
        CMakeScripts/
        Corinthia.xcodeproj/
        DocFormats/api/cmake_install.cmake
        DocFormats/cmake_install.cmake
        DocFormats/core/cmake_install.cmake
        DocFormats/filters/latex/cmake_install.cmake
        DocFormats/filters/odf/cmake_install.cmake
        DocFormats/filters/ooxml/cmake_install.cmake
        DocFormats/platform/cmake_install.cmake
        DocFormats/unittest/cmake_install.cmake
        cmake_install.cmake
        consumers/dfconvert/src/cmake_install.cmake
        consumers/dftest/src/cmake_install.cmake
        consumers/dfutil/src/cmake_install.cmake
        experiments/flat/src/cmake_install.cmake

If I instead run cmake -G “Unix Makefiles”, there are even more - about 40.

So using the source directory as the build directory gets really messy - I 
suspect there’d be even more files show up after a successful build, but I’ve 
just found the Unix Makefiles build is currently not working (at least on my 
machine; I’ll look into this shortly). We want to explicitly discourage people 
from trying this, and make it clear that a separate directory should be used 
instead.

Also, everyone uses different subdirectories for build outputs. I use “build” 
and “winbuild” for OS X and Windows. Jan uses “build.win32”, “build.win64”, 
“build.ubuntu”, and “build.xcode”. Others will presumably use different names 
again.

I also have a bunch of .flat and .exp files that I use for temporary testing 
that I want in the directory but aren’t supposed to be in the repository. They 
shouldn’t be in .gitignore because they’re my personal temporary names.

So I think it’s a bad idea to include Vistual Studio/XCode project files and 
the like in .gitignore.

—
Dr Peter M. Kelly
pmke...@apache.org

PGP key: http://www.kellypmk.net/pgp-key <http://www.kellypmk.net/pgp-key>
(fingerprint 5435 6718 59F0 DD1F BFA0 5E46 2523 BAA1 44AE 2966)

Reply via email to