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 <[email protected]> wrote:
>
> I pushed to maint and haven't yet merged up.
>
> Regards,
> John Ralls
>
>> On Mar 23, 2020, at 9:33 PM, jean <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
> [email protected]
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel