This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | C/C++ projects corrupt makefiles for other platforms even though it is aware those files should not be updated on the current platform | ||
---|---|---|---|
Product: | cnd | Reporter: | swpalmer <swpalmer> |
Component: | Project | Assignee: | Alexander Simon <alexvsimon> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 7.0 | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: |
Description
swpalmer
2011-10-09 02:33:16 UTC
Sasha,please evaluate the bug first of all. (In reply to comment #0) > Check it in to a VCS so you can easily see what changes are made to the files. Please provide more info about ignored folders. Did you add anything in ignored pattern? Probably this patterns (hg syntax of .hgignore): /build$ /dist$ /private$ \.dep\.inc$ \.make\.state\..*$ are candidates to be ignore. That's not at all relevant to the problem! The files in question will be in the nbproject folder. They are the platform specific makefiles. Just don't ignore them. Look in the file I wrote about "Makefile-variables.mk" When the configuration.xml file has configurations for multiple platforms, e.g. Mac and Linux, the Makefile-variables.mk file is re-written for ALL configurations, not just the configurations for the current platform. That is the problem. (In reply to comment #3) > That's not at all relevant to the problem! Try to add /private$ in ignore list and you will see absolutely different IDE behavior. This has NOTHING TO DO WITH VERSION CONTROL. This has NOTHING TO DO WITH FILES IN nbproject/private Seriously! If you aren't even going to spend the slightest amount of time even trying to understand the problem, why should I bother reporting it! Re-read the original problem report. I am done. For the record the nbproject/private folder is NOT checked in. Nothing in that folder is ever shared between the Linux and Mac machines involved. I just noticed that files of the same name are in the private folder. These are NOT the files i am talking about. The files with the problem are in not private files, they are in the nbproject folder itself. (In reply to comment #5) > Seriously! If you aren't even going to spend the slightest amount of time even > trying to understand the problem, why should I bother reporting it! Let's I try to explain "sharing" model of C/C++ projects. 1. Sharing by file system (for example by home folder). In this case all project metadata shared (nbproject/* and nbproject/private/*). Folder nbproject/pivate/* contains user/platform/tools dependent information and cannot be shared between users/companies. 2. Sharing by VCS. In this case /private/* folders should not be shared. As I understand you use sharing project by file system and does not exclude /private/* folder from sharing. I exactly understand the issue you talk about (issue description is good). I want to understand purpose of sharing project. It help me understand real user needs. "As I understand you use sharing project by file system and does not exclude /private/* folder from sharing." NO. As I have already stated. See comment #6, The "private" folder is NOT shared. I am doing what you have listed as #2, Sharing only the public stuff via VCS. Please try again. Integrated into 'main-golden' Changeset: http://hg.netbeans.org/main-golden/rev/3114ab1180a9 User: Alexander Simon <alexvsimon@netbeans.org> Log: fixed Bug #203376 C/C++ projects corrupt makefiles for other platforms even though it is aware those files should not be updated on the current platform Much appreciated. Thanks! It seems this is fixed for OS X.. I.e. When use OS X it doesn't mess up my Linux makefiles. But it is still a problem on Linux.. NB 7.1 on Linux just re-wrote all of the OS_X variables in my nbproject/Makefile-variables.mk file and similarly trashed the OS X Makefiles. Please, attach diff of nbproject/Makefile-variables.mk. diff -r 1035c7ae92b2 KayakNative/nbproject/Makefile-variables.mk --- a/KayakNative/nbproject/Makefile-variables.mk Tue Feb 21 16:16:09 2012 -0500 +++ b/KayakNative/nbproject/Makefile-variables.mk Tue Feb 21 16:29:10 2012 -0500 @@ -23,21 +23,21 @@ CND_PACKAGE_NAME_Release_Linux=libKayakNative.so.tar CND_PACKAGE_PATH_Release_Linux=dist/Release_Linux/GNU-Linux-x86/package/libKayakNative.so.tar # Debug_OS_X configuration -CND_PLATFORM_Debug_OS_X=GNU-MacOSX -CND_ARTIFACT_DIR_Debug_OS_X=dist/Debug_OS_X/GNU-MacOSX -CND_ARTIFACT_NAME_Debug_OS_X=libKayakNative.dylib -CND_ARTIFACT_PATH_Debug_OS_X=dist/Debug_OS_X/GNU-MacOSX/libKayakNative.dylib -CND_PACKAGE_DIR_Debug_OS_X=dist/Debug_OS_X/GNU-MacOSX/package -CND_PACKAGE_NAME_Debug_OS_X=libKayakNative.dylib.tar -CND_PACKAGE_PATH_Debug_OS_X=dist/Debug_OS_X/GNU-MacOSX/package/libKayakNative.dylib.tar +CND_PLATFORM_Debug_OS_X=GNU-Linux-x86 +CND_ARTIFACT_DIR_Debug_OS_X=dist/Debug_OS_X/GNU-Linux-x86 +CND_ARTIFACT_NAME_Debug_OS_X=libKayakNative.so +CND_ARTIFACT_PATH_Debug_OS_X=dist/Debug_OS_X/GNU-Linux-x86/libKayakNative.so +CND_PACKAGE_DIR_Debug_OS_X=dist/Debug_OS_X/GNU-Linux-x86/package +CND_PACKAGE_NAME_Debug_OS_X=libKayakNative.so.tar +CND_PACKAGE_PATH_Debug_OS_X=dist/Debug_OS_X/GNU-Linux-x86/package/libKayakNative.so.tar # Release_OS_X configuration -CND_PLATFORM_Release_OS_X=GNU-MacOSX -CND_ARTIFACT_DIR_Release_OS_X=dist/Release_OS_X/GNU-MacOSX -CND_ARTIFACT_NAME_Release_OS_X=libKayakNative.dylib -CND_ARTIFACT_PATH_Release_OS_X=dist/Release_OS_X/GNU-MacOSX/libKayakNative.dylib -CND_PACKAGE_DIR_Release_OS_X=dist/Release_OS_X/GNU-MacOSX/package -CND_PACKAGE_NAME_Release_OS_X=libKayakNative.dylib.tar -CND_PACKAGE_PATH_Release_OS_X=dist/Release_OS_X/GNU-MacOSX/package/libKayakNative.dylib.tar +CND_PLATFORM_Release_OS_X=GNU-Linux-x86 +CND_ARTIFACT_DIR_Release_OS_X=dist/Release_OS_X/GNU-Linux-x86 +CND_ARTIFACT_NAME_Release_OS_X=libKayakNative.so +CND_ARTIFACT_PATH_Release_OS_X=dist/Release_OS_X/GNU-Linux-x86/libKayakNative.so +CND_PACKAGE_DIR_Release_OS_X=dist/Release_OS_X/GNU-Linux-x86/package +CND_PACKAGE_NAME_Release_OS_X=libKayakNative.so.tar +CND_PACKAGE_PATH_Release_OS_X=dist/Release_OS_X/GNU-Linux-x86/package/libKayakNative.so.tar # # include compiler specific variables # Yes probably - I just now started using this feature (remote) so i am not too sure. What happens is that it builds correctly then it diplays the "Protocol error: killed" in red then it opens a new tab (in the output window) where it displays the RUN SUCCESSFUL notification - this is how it should be ? Thanks for your time Excuse me for the previous post - it was for another bug This issue persists with NB 7.2 On both Linux and Mac. Will set target release to Next as we need to re-work our Makefile generation to support VCS as new Makefiles generation is not implemented in this release, move this issue to the next release Three years and counting of constantly having to undo NetBeans breaking my projects... sigh. I am really sorry you need to do this, but maybe creating your own Makefile would resolve this problem? I mean you could try to use Project from Existing sources not Application type project. ( we call them unmanaged - when you have your own Makefile or build script and managed - when you want IDE generate Makefile for you). (In reply to swpalmer from comment #20) > Three years and counting of constantly having to undo NetBeans breaking my > projects... sigh. Integrated into 'main-silver', will be available in build *201506050001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/1b1e32784615 User: Alexander Simon <alexvsimon@netbeans.org> Log: fixing Bug #203376 C/C++ projects corrupt makefiles for other platforms even though it is aware those files should not be updated on the current platform -make configuration platform specific |