Lanpr-under-gp branch won't build on osx

trying to build lanpr-under-gp branch on OSX will end outputting 2 errors either you compile it with cmake or Xcode.

cmake outputs:

[ 10%] Building CXX object extern/mantaflow/CMakeFiles/extern_mantaflow.dir/preprocessed/commonkernels.h.reg.cpp.o
/Users/ivan/blender-git/blender/extern/glog/src/utilities.cc:262:17: warning: 
      'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is
      unsupported; please switch to a supported interface. For SYS_kdebug_trace
      use kdebug_signpost(). [-Wdeprecated-declarations]
    pid_t tid = syscall(__NR_gettid);
                ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/unistd.h:742:6: note: 
      'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
...

[ 17%] Building CXX object extern/ceres/CMakeFiles/extern_ceres.dir/internal/ceres/context.cc.o
/Users/ivan/blender-git/blender/source/blender/editors/gpencil/gpencil_add_lineart.c:97:63: warning: 
      unused parameter 'mat' [-Wunused-parameter]
void ED_gpencil_create_lineart(bContext *C, Object *ob, float mat[4][4])
                                                              ^
1 warning generated.


...

[ 22%] Building CXX object extern/ceres/CMakeFiles/extern_ceres.dir/internal/ceres/evaluator.cc.o
/Users/ivan/blender-git/blender/source/blender/editors/object/object_add.c:1389:35: warning: 
      initializing 'EnumPropertyItem *' (aka 'struct EnumPropertyItem *') with
      an expression of type 'const EnumPropertyItem []' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
  EnumPropertyItem *item = NULL, *item_ref = rna_enum_object_gpencil_type_items;
                                  ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ivan/blender-git/blender/source/blender/editors/object/object_add.c:1384:25: warning: 
      no previous prototype for function 'object_gpencil_add_options'
      [-Wmissing-prototypes]
const EnumPropertyItem *object_gpencil_add_options(bContext *C,
                        ^
/Users/ivan/blender-git/blender/source/blender/editors/object/object_add.c:1384:7: note: 
      declare 'static' if the function is not intended to be used outside of
      this translation unit
const EnumPropertyItem *object_gpencil_add_options(bContext *C,
      ^
      static 
....

[ 29%] Building C object source/blender/editors/space_info/CMakeFiles/bf_editor_space_info.dir/info_stats.c.o
In file included from /blender-git/blender/source/blender/editors/space_file/fsmenu.c:56:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:23:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:51:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Collections.h:138:41: error: 
      typedef redefinition with different types ('struct OpaqueCollection *' vs
      'struct Collection')
typedef struct OpaqueCollection*        Collection;
                                        ^
/blender-git/blender/source/blender/makesdna/DNA_collection_types.h:91:3: note: 
      previous definition is here
} Collection;

Xcode debugger outputs:

bf_editor_object
	Semantic Issue
		/blender-git/blender/source/blender/editors/object/object_add.c:1389:35: Initializing 'EnumPropertyItem *' (aka 'struct EnumPropertyItem *') with an expression of type 'const EnumPropertyItem []' discards qualifiers
		/blender-git/blender/source/blender/editors/object/object_add.c:1384:25: No previous prototype for function 'object_gpencil_add_options'
		/blender-git/blender/source/blender/editors/object/object_add.c:1384:7: Declare 'static' if the function is not intended to be used outside of this translation unit

bf_editor_space_file
	Semantic Issue
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Collections.h:138:41: Typedef redefinition with different types ('struct OpaqueCollection *' vs 'struct Collection')
		/blender-git/blender/source/blender/editors/space_file/fsmenu.c:56:12: In file included from /blender-git/blender/source/blender/editors/space_file/fsmenu.c:56:
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20:10: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20:
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:23:10: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:23:
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20:10: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20:
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:51:10: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:51:
		/blender-git/blender/source/blender/makesdna/DNA_collection_types.h:91:3: Previous definition is here

datatoc_icon
	Apple Mach-O Linker (ld) Warning
		: Directory not found for option '-L/blender-git/blender/../lib/darwin/png/lib/Debug'

extern_glog
	Deprecations
		/blender-git/blender/extern/glog/src/raw_logging.cc:139:3: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().
		/blender-git/blender/extern/glog/src/raw_logging.cc:63:34: Expanded from macro 'safe_write'
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/unistd.h:742:6: 'syscall' has been explicitly marked deprecated here
		/blender-git/blender/extern/glog/src/utilities.cc:262:17: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/unistd.h:742:6: 'syscall' has been explicitly marked deprecated here

bf_intern_ghost
	Deprecations
		/blender-git/blender/intern/ghost/intern/GHOST_ContextCGL.mm:233:23: 'NSOpenGLPFAStereo' is deprecated: first deprecated in macOS 10.12
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:89:5: 'NSOpenGLPFAStereo' has been explicitly marked deprecated here
		/blender-git/blender/intern/ghost/intern/GHOST_WindowCocoa.mm:407:16: 'setAcceptsTouchEvents:' is deprecated: first deprecated in macOS 10.12.2 - Use allowedTouchTypes instead
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:227:16: 		Property 'acceptsTouchEvents' is declared deprecated here
		/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:227:16: 'setAcceptsTouchEvents:' has been explicitly marked deprecated here

bf_editor_gpencil
	Semantic Issue
		/blender-git/blender/source/blender/editors/gpencil/gpencil_add_lineart.c:97:63: Unused parameter 'mat'

@ChengduLittleA you might want to apply this patch to your branch after testing https://developer.blender.org/P1641

2 Likes

seems to work quite fine. Thanks @ankitm!

Thanks bro! It should work, However I’m not sure how it works…

Added full error here https://developer.blender.org/D8933 arc land --revision D8933 --onto lanpr-under-gp --hold should work correctly.

It seems wrong that anyone who’ll include DNA_collection_types.h will also have to include DNA_lineart_types.h for no reason.
Also, DNA_lineart_types.h includes DNA_collection_types.h and also forward declares Collection ?

In the header path listed in the error, this is what we find:

The ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lineart_types.h change is to make the file appear in the IDE. It shows up in editors like sublime when you open the whole blender folder itself, but not in Blender Xcode project which only shows files which Cmake tells it to.

It’s an alpha quality software but is often correct GitHub - include-what-you-use/include-what-you-use: A tool for use with clang to analyze #includes in C and C++ source files

Also, I saw some #pragma once in *.c files but AFAIK, they’re useful for header files only.