Hi Dick (and others),

thanks for the hint, I will try not to use static linking.
I did that because in the past dynamic linking didn’t produce portable 
applications.
That is, they contained a reference to the wxWidgets libs at the place when 
being built and haven’t been copied to the app bundle… and all the usual 
fix-scripts to copy those libs into the bundle failed for me (problems with the 
symlinks)… and I didn’t want to fix every path manually.

I looked around a bit and found some cmake modules that should be able to 
produce portable application bundles… I’ll try to add/change that in the cmake 
files… if I succeed, I will of course propose a patch.


Thanks,
Bernhard

On 24.05.2014, at 04:16, Dick Hollenbeck <d...@softplc.com> wrote:

> On 05/23/2014 12:31 PM, Jean-Paul Louis wrote:
>> Hi Bernhard,
>> 
>> I am attaching my script to this email.
>> Some of the stuff in the script might not be needed anymore, but I will 
>> clean it up when I have time.
>> 
>> After the “make” is finished, I skip the “make install” as it is not yet 
>> capable to work.
>> So I just copy the bundles (*.app) to "/Applications/kicad” (see towards the 
>> end of the script).
>> 
>> Thanks to the help of Marco, Adam and even more so from Dick of the 
>> development team, I simplified the script so it build to 100%, and Dick 
>> modified the Cmake files to create the bundles with the kiface files  
>> properly copied where they belongs.
>> That might by why we have duplicate kiface files (seems to be the cause of 
>> the error at the end of the “make”.
>> 
>> I will create the files for the ENV variables, and let you know how that 
>> works.
>> 
>> Regards,
>> Jean-Paul
>> 
>> 
>> On May 23, 2014, at 10:59 AM, Bernhard Stegmaier stegma...@sw-systems.de 
>> [kicad-users] <kicad-us...@yahoogroups.com> wrote:
>> 
>>> Hi Jean-Paul,
>>> 
>>> 
>>> can you tell me what files have to be copied where?
>>> I remember some discussions about copying/linking/whatever .kiface files 
>>> that on the dev-list, but I didn’t find anything on first glance.
>>> And yes, let’s try to fix this…
>>> 
>>> With respect to setting the environment variables I did the following:
>>> Using Linux-like ~/.profile, etc. files will set the variables only when 
>>> launching from command-line… not from the dock/launcher.
>>> To set a variable for the launcher I made in 
>>> ~/Library/LaunchAgents
>>> files named like
>>> local.kicad.kisys3dmod.plist
>>> which looks like
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
>>>    "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
>>> <plist version="1.0">
>>> <dict>
>>>    <key>Label</key>
>>>    <string>local.kicad.kisys3dmod</string>
>>>    <key>EnableGlobbing</key>
>>>    <true/>
>>>    <key>ProgramArguments</key>
>>>    <array>
>>>        <string>launchctl</string>
>>>        <string>setenv</string>
>>>        <string>KISYS3DMOD</string>
>>>        <string>~/10 - Projekte/KiCad/Modules</string>
>>>    </array>
>>>    <key>RunAtLoad</key>
>>>    <true/>
>>> </dict>
>>> </plist>
>>> and in the case sets KISYS3DMOD variable. I did the same for the other 
>>> variables I need (I didn’t find any solution to set more than one variable 
>>> in a single file). The files will be loaded automatically on login (as far 
>>> as I remember) or you can test them with “launchctl load …”. 
>>> But caution: those files will only set it for the launcher, not the shell… 
>>> while searching for that I found some shell scripting that can be added to 
>>> e.g., .profile reading the values from launched so that you don’t have to 
>>> maintain it in two places if you need that, but I didn’t need it so I don’t 
>>> have a link at hand.
>>> 
>>> This solution works well for me both on 10.8 and 10.9.
>>> 
>>> The KiCadOSXBuilder creates a wrapper-script for setting the variables, but 
>>> I didn’t like that approach, because for me those variables are 
>>> machine-specific (especially the library stuff). 
>>> So, it shouldn’t be hardcoded somewhere in the application bundle, but 
>>> defined by the machine/account itself.
>>> 
>>> 
>>> Regards,
>>> Bernhard
>>> 
>>> On 23.05.2014, at 16:27, Jean-Paul Louis lou...@yahoo.com [kicad-users] 
>>> <kicad-us...@yahoogroups.com> wrote:
>>> 
>>>> Hi Bernhard,
>>>> 
>>>> I use OS X 10.9.2 and I keep trying the most recents BZR. I came to the 
>>>> same conclusion about some failures due to duplicate work copying files 
>>>> into the OS X bundles.
>>>> 
>>>> I use a bash script fairly raw to copy the files from the build to the 
>>>> /Applications/kicad directory.
>>>> eeschema sort of work, but cannot find kicad.pro template.
>>>> it does complain about a missing power lib twice, then load the project I 
>>>> am working on as a test case.
>>>> When I go to the preferences, nothing is loaded there, except a power lib 
>>>> (the missing one) that I do not use, and a weird path like 
>>>> /usr/local/share.
>>>> 
>>>> My next task is to figure out how to set the proper shell variables like 
>>>> KISYSMOD, KIGITHUB, etc..
>>>> because they are not set at all in my build.
>>>> 
>>>> If you are interested, we can work together to fix what we can, as I do 
>>>> not get any help from Marco Serantoni who is supposed to be the Mac OS X 
>>>> guru.
>>>> 
>>>> Regards,
>>>> Jean-Paul
>>>> AC9GH
>>>> 
>>>> On May 23, 2014, at 7:24 AM, Bernhard Stegmaier stegma...@sw-systems.de 
>>>> [kicad-users] <kicad-us...@yahoogroups.com> wrote:
>>>> 
>>>>> Hi Mac guys,
>>>>> 
>>>>> 
>>>>> did anyone succeed to build and run a recent version on OSX (most likely 
>>>>> after the modular kicad changes)?
>>>>> 
>>>>> I tried to build some versions on both 10.8 and 10.9 machines using 
>>>>> different versions of XCode during the last 2 weeks, but I didn’t 
>>>>> succeed… :(
>>>>> Compilation did work smoothly on all machines (configured with 
>>>>> -DKICAD_BUILD_STATIC=ON and having disabled scripting and github plugin - 
>>>>> just as I did with all the previous versions I have built) after a small 
>>>>> patch of aMakefile (see end of the mail, I think this is just a leftover 
>>>>> because the file that should be copied by that piece of code is already 
>>>>> at the right spot…).
>>>>> But, all binaries (except kicad) don’t work on any of my machines. 
>>>>> 
>>>>> They start and immediately crash with a backtrace like this:
>>>>> <<<
>>>>> Exception Type:  EXC_CRASH (SIGABRT)
>>>>> Exception Codes: 0x0000000000000000, 0x0000000000000000
>>>>> 
>>>>> Application Specific Information:
>>>>> abort() called
>>>>> *** error for object 0x108e2c0f0: pointer being freed was not allocated
>>>>> 
>>>>> 
>>>>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>>>>> 0   libsystem_kernel.dylib                0x00007fff8ae51866 
>>>>> __pthread_kill + 10
>>>>> 1   libsystem_pthread.dylib               0x00007fff8dbd435c pthread_kill 
>>>>> + 92
>>>>> 2   libsystem_c.dylib                     0x00007fff8e2c8b1a abort + 125
>>>>> 3   libsystem_malloc.dylib                0x00007fff91e2b07f free + 411
>>>>> 4   org.kicad-eda.pcbnew                  0x0000000100008c3e 
>>>>> wxScopedCharTypeBuffer<char>::DecRef() + 62
>>>>> 5   org.kicad-eda.pcbnew                  0x00000001000bbff7 
>>>>> wxScopedCharTypeBuffer<char>::MakeOwnedCopyOf(wxScopedCharTypeBuffer<char>
>>>>>  const&) + 31
>>>>> 6   _pcbnew.kiface                        0x00000001082f2275 
>>>>> wxMessageOutputStderr::Output(wxString const&) + 97
>>>>> 7   _pcbnew.kiface                        0x00000001081ef968 
>>>>> ShowAssertDialog(wxString const&, int, wxString const&, wxString const&, 
>>>>> wxString const&, wxAppTraits*) + 664
>>>>> 8   _pcbnew.kiface                        0x00000001081ee6cc 
>>>>> wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString 
>>>>> const&, wxString const&) + 188
>>>>> 9   _pcbnew.kiface                        0x00000001081eec5f 
>>>>> wxOnAssert(char const*, int, char const*, char const*, wchar_t const*) + 
>>>>> 127
>>>>> 10  _pcbnew.kiface                        0x0000000108278d60 
>>>>> wxStandardPathsBase::Get() + 80
> 
> 
> 
> Why is this stack trace point showing that function wxStandardPathBase::Get() 
> is in the
> module _pcbnew.kiface?
> 
> This might be because you are linking with static wx libraries.  With the 
> advent of
> kiface, this can never work again.
> 
> All platforms must link to a shared/dynamic wx library set.  No static 
> wxWidgets library
> set ever again please.
> 
> Start there.  Its possible that wxTheApp is not unique. You have a second 
> copy because you
> are linking wx into every frickin module.
> 
> As to the ::Get() call, here is the source from svn head of wx:
> 
> line 59 or so of common/stdpbase.cpp:
> 
> wxStandardPaths& wxStandardPathsBase::Get()
> {
>    wxAppTraits * const traits = wxTheApp ? wxTheApp->GetTraits() : NULL;
>    wxCHECK_MSG( traits, gs_stdPaths, wxT("create wxApp before calling this") 
> );
> 
>    return traits->GetStandardPaths();
> }
> 
> 
> But we only want this to reside in the wx SHARED/DYNAMIC library, not in our
> _pcbnew.kiface module.
> 
> 
> 
>>>>> 11  _pcbnew.kiface                        0x0000000108242677 
>>>>> wxFileConfig::GetLocalFile(wxString const&, int) + 27
>>>>> 12  _pcbnew.kiface                        0x00000001082429ad 
>>>>> wxFileConfig::wxFileConfig(wxString const&, wxString const&, wxString 
>>>>> const&, wxString const&, long, wxMBConv const&) + 497
>>>>> 13  _pcbnew.kiface                        0x0000000107e20845 
>>>>> BIN_MOD::Init() + 229
>>>>> 14  _pcbnew.kiface                        0x0000000107e686d7 
>>>>> KIFACE_I::start_common(int) + 39
>>>>> 15  _pcbnew.kiface                        0x00000001079141c5 
>>>>> PCB::IFACE::OnKifaceStart(PGM_BASE*, int) + 21
>>>>> 16  org.kicad-eda.pcbnew                  0x0000000100022609 
>>>>> KIWAY::KiFACE(KIWAY::FACE_T, bool) + 441
>>>>> 17  org.kicad-eda.pcbnew                  0x0000000100022ca5 
>>>>> KIWAY::Player(FRAME_T, bool) + 309
>>>>> 18  org.kicad-eda.pcbnew                  0x0000000100006144 
>>>>> PGM_SINGLE_TOP::OnPgmInit(wxApp*) + 1428
>>>>> 19  org.kicad-eda.pcbnew                  0x0000000100009bed 
>>>>> APP_SINGLE_TOP::OnInit() + 45
>>>>> 20  org.kicad-eda.pcbnew                  0x000000010007912c 
>>>>> wxApp::CallOnInit() + 78
>>>>> 21  org.kicad-eda.pcbnew                  0x0000000100292f3c 
>>>>> wxEntry(int&, wchar_t**) + 76
>>>>> 22  org.kicad-eda.pcbnew                  0x0000000100005b20 main + 48
>>>>> 23  org.kicad-eda.pcbnew                  0x0000000100005ab4 start + 52
>>>>>>>> 
>>>>> and messages on console like
>>>>> <<<
>>>>> objc[17580]: Class wxNSAnimationDelegate is implemented in both 
>>>>> /Volumes/MacStorage/Temp/KiCad/bin/bin/pcbnew.app/Contents/MacOS/pcbnew 
>>>>> and 
>>>>> /Volumes/MacStorage/Temp/KiCad/bin/bin/pcbnew.app/Contents/MacOS/_pcbnew.kiface.
>>>>>  One of the two will be used. Which one is undefined.
>>>>> ./src/common/stdpbase.cpp(62): assert "traits" failed in Get(): create 
>>>>> wxApp before calling this
>>>>>>>> 
>>>>> After googling a bit at least the messages on console seem to indicate 
>>>>> that some wxWidgets functions are used before the wxApp is instantiated.
>>>>> 
>>>>> The problem might already be known, I found this comment in the code, but 
>>>>> one line below where it crashes for me.
>>>>> <<<
>>>>>   m_bm.Init();
>>>>> 
>>>>>   m_bm.m_config->Read( showPageLimitsKey, &g_ShowPageLimits );
>>>>> 
>>>>>   // FIXME OSX Mountain Lion (10.8)
>>>>>   // Seems that Read doesn't found anything and ColorFromInt
>>>>>   // Asserts - I'm unable to reproduce on 10.7
>>>>> 
>>>>>   int draw_bg_color = BLACK;      // Default for all apps but Eeschema
>>>>>>>> 
>>>>> 
>>>>> Any hints/ideas?
>>>>> 
>>>>> 
>>>>> Regards,
>>>>> Bernhard
>>>>> 
>>>>> === modified file 'pcb_calculator/CMakeLists.txt'
>>>>> --- pcb_calculator/CMakeLists.txt 2014-05-12 15:17:51 +0000
>>>>> +++ pcb_calculator/CMakeLists.txt 2014-05-16 09:00:42 +0000
>>>>> @@ -134,15 +134,6 @@
>>>>>           )
>>>>>   endif()
>>>>> 
>>>>> -    if( APPLE )
>>>>> -        # copies kiface into the bundle
>>>>> -        add_custom_target( _pcb_calculator_kiface_copy ALL
>>>>> -            COMMAND ${CMAKE_COMMAND} -E copy 
>>>>> ${CMAKE_BINARY_DIR}/pcb_calculator/_pcb_calculator.kiface 
>>>>> "${CMAKE_BINARY_DIR}/pcb_calculator/pcb_calculator.app/Contents/MacOS/"
>>>>> -            DEPENDS pcb_calculator_kiface
>>>>> -            COMMENT "Copying kiface into pcb_calculator"
>>>>> -        )
>>>>> -    endif()
>>>>> -
>>>>> else()
>>>>> 
>>>>>   add_executable( pcb_calculator WIN32 MACOSX_BUNDLE
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------------------------
>>>> 
>>>> ------------------------------------
>>>> 
>>>> Please read the Kicad FAQ in the group files section before posting your 
>>>> question.
>>>> Please post your bug reports here. They will be picked up by the creator 
>>>> of Kicad.
>>>> Please visit http://www.kicadlib.org for details of how to contribute your 
>>>> symbols/modules to the kicad library.
>>>> For building Kicad from source and other development questions visit the 
>>>> kicad-devel group athttp://groups.yahoo.com/group/kicad-develYahoo Groups 
>>>> Links
>>>> 
>>>> <*> To visit your group on the web, go to:
>>>>   http://groups.yahoo.com/group/kicad-users/
>>>> 
>>>> <*> Your email settings:
>>>>   Individual Email | Traditional
>>>> 
>>>> <*> To change settings online go to:
>>>>   http://groups.yahoo.com/group/kicad-users/join
>>>>   (Yahoo! ID required)
>>>> 
>>>> <*> To change settings via email:
>>>>   kicad-users-dig...@yahoogroups.com 
>>>>   kicad-users-fullfeatu...@yahoogroups.com
>>>> 
>>>> <*> To unsubscribe from this group, send an email to:
>>>>   kicad-users-unsubscr...@yahoogroups.com
>>>> 
>>>> <*> Your use of Yahoo Groups is subject to:
>>>>   https://info.yahoo.com/legal/us/yahoo/utos/terms/
>>> 
>>> 
>>> __._,_.___
>>> Posted by: Bernhard Stegmaier <stegma...@sw-systems.de>
>>> Reply via web post  •       Reply to sender •       Reply to group  •       
>>> Start a New Topic       •       Messages in this topic (3)
>>> Please read the Kicad FAQ in the group files section before posting your 
>>> question.
>>> Please post your bug reports here. They will be picked up by the creator of 
>>> Kicad.
>>> Please visit http://www.kicadlib.org for details of how to contribute your 
>>> symbols/modules to the kicad library.
>>> For building Kicad from source and other development questions visit the 
>>> kicad-devel group athttp://groups.yahoo.com/group/kicad-devel
>>> VISIT YOUR GROUP 
>>>     • New Members 14 
>>>     • New Photos 3
>>> 
>>> • Privacy • Unsubscribe • Terms of Use
>>> 
>>> .
>>> 
>>> 
>>> __,_._,___
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to