I've figured out what's going wrong with the three gncmodule tests but I don't 
know what to do about it. Those tests depend on some test modules and their 
fake implementation libraries that are built in 
libgnucash/gnc-module/test/(foo|bar|baz|misc-mods). The CMakeLists.txt in those 
directories include a statement (this one from misc-mods)
  set_target_properties(gncmod-agedver gncmod-futuremodsys gncmod-incompatdep 
PROPERTIES
  LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
  ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
  RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

The Xcode generator seems to be ignoring that because it's putting all of them 
in lib/gnucash instead of lib/gnucash/test. One can almost work around that by 
moving the files to lib/gnucash/test and adding that to the rpath 
(install_name_tool -add_rpath `pwd`/lib/gnucash/test bin/test-agedver`, etc.) 
of the affected binaries. Interestingly that breaks other tests. The C ones, 
test-modsysver, test-incompatdep, and test-dynload, can all be made to pass by 
also adding lib/gnucash/test to their rpaths. Four others, 
test-gnc-module-swigged-c, test-gnc-module-load-deps, 
test-gnc-module-scm-module, and test-gnc-module-scm-multi) also fail after the 
move. 

Regards,
John Ralls



> On Mar 24, 2020, at 8:34 AM, John Ralls <jra...@ceridwen.us> wrote:
> 
> I pushed to maint and haven't yet merged up.
> 
> Regards,
> John Ralls
> 
>> On Mar 23, 2020, at 9:33 PM, jean <rip...@gmail.com> wrote:
>> 
>> Did you push to master? Or does this live outside of git? I don't see any 
>> change.
>> 
>> On 3/23/20 6:02 PM, John Ralls wrote:
>>> For that solution it should have been CMAKE_CURRENT_BINARY_DIR instead of 
>>> CMAKE_BINARY_DIR, but I decided instead to add a generator statement so 
>>> that it would put libgtest.a and libgmock.a where Xcode expects them. I 
>>> also added CONFIGURATIONS statements to the add_test specs so that all of 
>>> the tests get run. That's pushed.
>>> The three tests that failed for you fail for me on Xcode too. The problem 
>>> is that they're gncmodule-loading tests and they can't find the modules 
>>> they're supposed to load. It's not a dependency problem, the modules are 
>>> built. I haven't figured out what's wrong yet.
>>> Regards,
>>> John Ralls
>>>> On Mar 23, 2020, at 9:44 AM, Jean Laroche <rip...@gmail.com> wrote:
>>>> 
>>>> Yes, I wiped everything out, changed common/test-core/CMakeLists.txt and 
>>>> reran the cmake command that creates the xcode project. LMK if I can 
>>>> provide more testing. I'm definitely not familiar with cmake (only started 
>>>> using it at work in the past couple months).
>>>> J.
>>>> 
>>>> On 3/23/20 9:34 AM, John Ralls wrote:
>>>>> Jean,
>>>>> At this point the build messages from libgtest.a are more interesting 
>>>>> because that's what we're trying to coerce Xcode into putting somewhere 
>>>>> different.
>>>>> I trust that you started fresh from an empty build dir after changing 
>>>>> common/test-core/CMakeLists.txt.
>>>>> Regards,
>>>>> John Ralls
>>>>>> On Mar 22, 2020, at 4:04 PM, jean <rip...@gmail.com> wrote:
>>>>>> 
>>>>>> I tried your suggestion, modified common/test-core/CMakeLists.txt (in 
>>>>>> the src directory I assume). But I'm still getting the same issue trying 
>>>>>> to build check.
>>>>>> 
>>>>>> 
>>>>>> Showing Recent Messages
>>>>>> Ld /Users/Shari/gnucash-stable/build_xcode/bin/test-gnc-rational normal 
>>>>>> x86_64
>>>>>>   cd /Users/Shari/gnucash-stable/src/gnucash-git
>>>>>>   export MACOSX_DEPLOYMENT_TARGET=10.14
>>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
>>>>>>  -arch x86_64 -isysroot 
>>>>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
>>>>>>  -L/Users/Shari/gnucash-stable/build_xcode/bin 
>>>>>> -F/Users/Shari/gnucash-stable/build_xcode/bin -filelist 
>>>>>> /Users/Shari/gnucash-stable/build_xcode/libgnucash/engine/test/gnucash.build/Debug/test-gnc-rational.build/Objects-normal/x86_64/test-gnc-rational.LinkFileList
>>>>>>  -mmacosx-version-min=10.14 -Xlinker -object_path_lto -Xlinker 
>>>>>> /Users/Shari/gnucash-stable/build_xcode/libgnucash/engine/test/gnucash.build/Debug/test-gnc-rational.build/Objects-normal/x86_64/test-gnc-rational_lto.o
>>>>>>  -Xlinker -no_deduplicate -L/usr/local/opt/openblas/lib 
>>>>>> -Wl,-search_paths_first -Wl,-headerpad_max_install_names 
>>>>>> -L/Users/Shari/gnucash-stable/lib -lintl -lglib-2.0 
>>>>>> -L/Users/Shari/gnucash-stable/lib -lgobject-2.0 -lintl -lglib-2.0 
>>>>>> -L/Users/Shari/gnucash-stable/lib -lgmodule-2.0 -lintl -lglib-2.0 
 -
> L/Users/Shari/gnucash-stable/lib -lgthread-2.0 -lintl -lglib-2.0 
> -L/Users/Shari/gnucash-stable/lib -licui18n -licuuc -licudata 
> /Users/Shari/gnucash-stable/lib/libboost_date_time.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_regex.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_locale.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_filesystem.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_system.dylib 
> /Users/Shari/gnucash-stable/build_xcode/common/test-core/libgtest.a 
> -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -licui18n -licuuc -licudata 
> /Users/Shari/gnucash-stable/lib/libboost_date_time.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_regex.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_locale.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_filesystem.dylib 
> /Users/Shari/gnucash-stable/lib/libboost_system.dylib 
> /Users/Shari/gnucash-stable/build_xcode/common/test-core/libgtest.a -Xlinker 
> -dependency_info -Xlinker 
> /Users/Shari/gnucash-stable/build_xcode/libgnucash/engine/test/gnucash.build
 /
> Debug/test-gnc-rational.build/Objects-normal/x86_64/test-gnc-rational_dependency_info.dat
>  -o /Users/Shari/gnucash-stable/build_xcode/bin/test-gnc-rational
>>>>>> 
>>>>>> clang: error: no such file or directory: 
>>>>>> '/Users/Shari/gnucash-stable/build_xcode/common/test-core/libgtest.a'
>>>>>> clang: error: no such file or directory: 
>>>>>> '/Users/Shari/gnucash-stable/build_xcode/common/test-core/libgtest.a'
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 3/22/20 3:25 PM, John Ralls wrote:
>>>>>>>> On Mar 22, 2020, at 2:48 PM, jean <rip...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>> clang: error: no such file or directory: 
>>>>>>>> '/Users/Shari/gnucash-stable/build_xcode/common/test-core/libgtest.a'
>>>>>>>> clang: error: no such file or directory: 
>>>>>>>> '/Users/Shari/gnucash-stable/build_xcode/common/test-core/libgtest.a'
>>>>>>>> 
>>>>>>>> The missing .a files are here:
>>>>>>>> ./common/test-core/Debug/libgtest.a
>>>>>>>> 
>>>>>>>> I.e. xcode expects common/test-core/libgtest.a but instead I have 
>>>>>>>> ./common/test-core/Debug/libgtest.a
>>>>>>> That's because Xcode lets you select the build type from the GUI and of 
>>>>>>> course Cmake doesn't know about that at configure time so it can't 
>>>>>>> adjust the locations. I'm actually a bit surprised that this is the 
>>>>>>> only thing that broke.
>>>>>>> This stackoverflow seems to address the problem: 
>>>>>>> https://stackoverflow.com/questions/18393813/how-do-i-suppress-xcode-from-generating-a-folder-named-after-the-build-configura
>>>>>>> Since it's just ligbtest maybe just tweaking that one target will work. 
>>>>>>> Try adding to common/test-core/CMakeLists.txt at line 80
>>>>>>>    if (CMAKE_GENERATOR STREQUAL Xcode)
>>>>>>>       set_target_properties(gtest PROPERTIES
>>>>>>>                             ARCHIVE_OUTPUT_DIRECTORY_DEBUG 
>>>>>>> ${CMAKE_BINARY_DIR}
>>>>>>>                             ARCHIVE_OUTPUT_DIRECTORY_RELEASE 
>>>>>>> ${CMAKE_BINARY_DIR}
>>>>>>>                             )
>>>>>>>    endif()
>>>>>>> and re-run cmake.
>>>>>>> Regards,
>>>>>>> John Ralls
> 
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel@gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to