Commit the rest of the OSX build fixes missed in the previous commit.
This commit is contained in:
parent
816974b8ca
commit
f06bfe6d70
|
@ -349,8 +349,9 @@ if( APPLE )
|
||||||
set( OSX_BUNDLE_MAIN "kicad.app" )
|
set( OSX_BUNDLE_MAIN "kicad.app" )
|
||||||
set( OSX_BUNDLE_BIN_DIR "Contents/MacOS" )
|
set( OSX_BUNDLE_BIN_DIR "Contents/MacOS" )
|
||||||
set( OSX_BUNDLE_LIB_DIR "Contents/Frameworks" )
|
set( OSX_BUNDLE_LIB_DIR "Contents/Frameworks" )
|
||||||
set( OSX_BUNDLE_KIFACE_DIR "Contents/Plugins" )
|
set( OSX_BUNDLE_KIFACE_DIR "Contents/PlugIns" )
|
||||||
set( OSX_BUNDLE_SUP_DIR "Contents/SharedSupport" )
|
set( OSX_BUNDLE_SUP_DIR "Contents/SharedSupport" )
|
||||||
|
set( OSX_BUNDLE_APP_DIR "Contents/Applications" )
|
||||||
set( OSX_BUNDLE_BUILD_DIR "${CMAKE_BINARY_DIR}/kicad/${OSX_BUNDLE_MAIN}" )
|
set( OSX_BUNDLE_BUILD_DIR "${CMAKE_BINARY_DIR}/kicad/${OSX_BUNDLE_MAIN}" )
|
||||||
set( OSX_BUNDLE_BUILD_BIN_DIR "${OSX_BUNDLE_BUILD_DIR}/${OSX_BUNDLE_BIN_DIR}" )
|
set( OSX_BUNDLE_BUILD_BIN_DIR "${OSX_BUNDLE_BUILD_DIR}/${OSX_BUNDLE_BIN_DIR}" )
|
||||||
set( OSX_BUNDLE_BUILD_LIB_DIR "${OSX_BUNDLE_BUILD_DIR}/${OSX_BUNDLE_LIB_DIR}" )
|
set( OSX_BUNDLE_BUILD_LIB_DIR "${OSX_BUNDLE_BUILD_DIR}/${OSX_BUNDLE_LIB_DIR}" )
|
||||||
|
@ -377,6 +378,24 @@ if( APPLE )
|
||||||
# used to set DEFAULT_FP_LIB_PATH in config.h.cmake, but then never used
|
# used to set DEFAULT_FP_LIB_PATH in config.h.cmake, but then never used
|
||||||
# set it to correct value just in case (see common.cpp)
|
# set it to correct value just in case (see common.cpp)
|
||||||
set( KICAD_FP_LIB_INSTALL_PATH "~/Library/Preferences/kicad" )
|
set( KICAD_FP_LIB_INSTALL_PATH "~/Library/Preferences/kicad" )
|
||||||
|
|
||||||
|
# Override default paths for fixup_bundle
|
||||||
|
set( OSX_BUNDLE_OVERRIDE_PATHS "
|
||||||
|
function( gp_item_default_embedded_path_override item default_embedded_path_var )
|
||||||
|
# by default, embed things right next to the main bundle executable:
|
||||||
|
set( path \"@executable_path/../../Contents/MacOS\" )
|
||||||
|
set( overridden 0 )
|
||||||
|
|
||||||
|
# embed .dylibs right next to the main bundle executable:
|
||||||
|
if( item MATCHES \"\\\\.dylib$\" )
|
||||||
|
set( path \"@executable_path/../Frameworks\" )
|
||||||
|
set( overridden 1 )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set( \${default_embedded_path_var} \"\${path}\" PARENT_SCOPE )
|
||||||
|
endfunction(gp_item_default_embedded_path_override)
|
||||||
|
"
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
mark_as_advanced( KICAD_BIN
|
mark_as_advanced( KICAD_BIN
|
||||||
|
@ -614,7 +633,7 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
# relative path for python in bundle
|
# relative path for python in bundle
|
||||||
set( PYTHON_LIB_DIR "python" )
|
set( PYTHON_LIB_DIR "python/site-packages" )
|
||||||
# install into bundle Frameworks folder
|
# install into bundle Frameworks folder
|
||||||
set( PYTHON_DEST "${OSX_BUNDLE_BUILD_LIB_DIR}/${PYTHON_LIB_DIR}"
|
set( PYTHON_DEST "${OSX_BUNDLE_BUILD_LIB_DIR}/${PYTHON_LIB_DIR}"
|
||||||
CACHE PATH "Python module install path."
|
CACHE PATH "Python module install path."
|
||||||
|
@ -655,6 +674,25 @@ endif()
|
||||||
# 'CMakeLists.txt' files to process
|
# 'CMakeLists.txt' files to process
|
||||||
#================================================
|
#================================================
|
||||||
|
|
||||||
|
if( APPLE )
|
||||||
|
# Remove app bundles in ${KICAD_BIN} before installing anything new.
|
||||||
|
# Must be defined before all includes so that it is executed first.
|
||||||
|
install( CODE "
|
||||||
|
message( STATUS \"Removing existing application bundles...\" )
|
||||||
|
# Remove links to standalone apps
|
||||||
|
file( REMOVE ${KICAD_BIN}/bitmap2component.app )
|
||||||
|
file( REMOVE ${KICAD_BIN}/eeschema.app )
|
||||||
|
file( REMOVE ${KICAD_BIN}/cvpcb.app )
|
||||||
|
file( REMOVE ${KICAD_BIN}/gerbview.app )
|
||||||
|
file( REMOVE ${KICAD_BIN}/pcb_calculator.app )
|
||||||
|
file( REMOVE ${KICAD_BIN}/pcbnew.app )
|
||||||
|
file( REMOVE ${KICAD_BIN}/pl_editor.app )
|
||||||
|
# Remove main bundle
|
||||||
|
file( REMOVE_RECURSE ${KICAD_BIN}/${OSX_BUNDLE_MAIN} )
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Binaries ( CMake targets ) #
|
# Binaries ( CMake targets ) #
|
||||||
############################
|
############################
|
||||||
|
|
|
@ -100,6 +100,8 @@ target folder for compiled binaries, third parameter is the kicad folder, and
|
||||||
the last optional parameter are make options used during the build (in this
|
the last optional parameter are make options used during the build (in this
|
||||||
case for building with 4 jobs in parallel).
|
case for building with 4 jobs in parallel).
|
||||||
The script will automatically detect if you are compiling wxWidgets or wxPython.
|
The script will automatically detect if you are compiling wxWidgets or wxPython.
|
||||||
|
NOTE: All paths are assumed to be relative to the current directory, i.e., the
|
||||||
|
working root you are in.
|
||||||
CAUTION: The script will erase existing wx-build and target folders (wx-bin)
|
CAUTION: The script will erase existing wx-build and target folders (wx-bin)
|
||||||
without any confirmation!
|
without any confirmation!
|
||||||
|
|
||||||
|
|
|
@ -142,8 +142,11 @@ wxString FindKicadFile( const wxString& shortname )
|
||||||
{
|
{
|
||||||
// Test the presence of the file in the directory shortname of
|
// Test the presence of the file in the directory shortname of
|
||||||
// the KiCad binary path.
|
// the KiCad binary path.
|
||||||
|
#ifndef __WXMAC__
|
||||||
wxString fullFileName = Pgm().GetExecutablePath() + shortname;
|
wxString fullFileName = Pgm().GetExecutablePath() + shortname;
|
||||||
|
#else
|
||||||
|
wxString fullFileName = Pgm().GetExecutablePath() + wxT( "Contents/MacOS/" ) + shortname;
|
||||||
|
#endif
|
||||||
if( wxFileExists( fullFileName ) )
|
if( wxFileExists( fullFileName ) )
|
||||||
return fullFileName;
|
return fullFileName;
|
||||||
|
|
||||||
|
@ -157,16 +160,22 @@ wxString FindKicadFile( const wxString& shortname )
|
||||||
return fullFileName;
|
return fullFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
// find binary file from possibilities list:
|
|
||||||
// /usr/local/kicad/linux or c:/kicad/winexe
|
|
||||||
|
|
||||||
// Path list for KiCad binary files
|
// Path list for KiCad binary files
|
||||||
const static wxChar* possibilities[] = {
|
const static wxChar* possibilities[] = {
|
||||||
#ifdef __WINDOWS__
|
#if defined( __WINDOWS__ )
|
||||||
wxT( "c:/kicad/bin/" ),
|
wxT( "c:/kicad/bin/" ),
|
||||||
wxT( "d:/kicad/bin/" ),
|
wxT( "d:/kicad/bin/" ),
|
||||||
wxT( "c:/Program Files/kicad/bin/" ),
|
wxT( "c:/Program Files/kicad/bin/" ),
|
||||||
wxT( "d:/Program Files/kicad/bin/" ),
|
wxT( "d:/Program Files/kicad/bin/" ),
|
||||||
|
#elif defined( __WXMAC__ )
|
||||||
|
// all internal paths are relative to main bundle kicad.app
|
||||||
|
wxT( "Contents/Applications/cvpcb.app/Contents/MacOS/" ),
|
||||||
|
wxT( "Contents/Applications/pcbnew.app/Contents/MacOS/" ),
|
||||||
|
wxT( "Contents/Applications/eeschema.app/Contents/MacOS/" ),
|
||||||
|
wxT( "Contents/Applications/gerbview.app/Contents/MacOS/" ),
|
||||||
|
wxT( "Contents/Applications/bitmap2component.app/Contents/MacOS/" ),
|
||||||
|
wxT( "Contents/Applications/pcb_calculator.app/Contents/MacOS/" ),
|
||||||
|
wxT( "Contents/Applications/pl_editor.app/Contents/MacOS/" ),
|
||||||
#else
|
#else
|
||||||
wxT( "/usr/bin/" ),
|
wxT( "/usr/bin/" ),
|
||||||
wxT( "/usr/local/bin/" ),
|
wxT( "/usr/local/bin/" ),
|
||||||
|
@ -174,9 +183,15 @@ wxString FindKicadFile( const wxString& shortname )
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// find binary file from possibilities list:
|
||||||
for( unsigned i=0; i<DIM(possibilities); ++i )
|
for( unsigned i=0; i<DIM(possibilities); ++i )
|
||||||
{
|
{
|
||||||
|
#ifndef __WXMAC__
|
||||||
fullFileName = possibilities[i] + shortname;
|
fullFileName = possibilities[i] + shortname;
|
||||||
|
#else
|
||||||
|
// make relative paths absolute
|
||||||
|
fullFileName = Pgm().GetExecutablePath() + possibilities[i] + shortname;
|
||||||
|
#endif
|
||||||
|
|
||||||
if( wxFileExists( fullFileName ) )
|
if( wxFileExists( fullFileName ) )
|
||||||
return fullFileName;
|
return fullFileName;
|
||||||
|
@ -189,23 +204,8 @@ wxString FindKicadFile( const wxString& shortname )
|
||||||
int ExecuteFile( wxWindow* frame, const wxString& ExecFile, const wxString& param,
|
int ExecuteFile( wxWindow* frame, const wxString& ExecFile, const wxString& param,
|
||||||
wxProcess *callback )
|
wxProcess *callback )
|
||||||
{
|
{
|
||||||
wxString fullFileName;
|
wxString fullFileName = FindKicadFile( ExecFile );
|
||||||
|
|
||||||
|
|
||||||
fullFileName = FindKicadFile( ExecFile );
|
|
||||||
|
|
||||||
#ifdef __WXMAC__
|
|
||||||
if( wxFileExists( fullFileName ) || wxDir::Exists( fullFileName ) )
|
|
||||||
{
|
|
||||||
return ProcessExecute( Pgm().GetExecutablePath() + wxT( "/" )
|
|
||||||
+ ExecFile + wxT( " " )
|
|
||||||
+ param, wxEXEC_ASYNC, callback );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return ProcessExecute( wxT( "/usr/bin/open " ) + param, wxEXEC_ASYNC, callback );
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if( wxFileExists( fullFileName ) )
|
if( wxFileExists( fullFileName ) )
|
||||||
{
|
{
|
||||||
if( !param.IsEmpty() )
|
if( !param.IsEmpty() )
|
||||||
|
@ -213,7 +213,16 @@ int ExecuteFile( wxWindow* frame, const wxString& ExecFile, const wxString& para
|
||||||
|
|
||||||
return ProcessExecute( fullFileName, wxEXEC_ASYNC, callback );
|
return ProcessExecute( fullFileName, wxEXEC_ASYNC, callback );
|
||||||
}
|
}
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( !param.IsEmpty() )
|
||||||
|
fullFileName += wxT( " " ) + param;
|
||||||
|
|
||||||
|
return ProcessExecute( wxT( "/usr/bin/open -a " ) + fullFileName, wxEXEC_ASYNC, callback );
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( _( "Command <%s> could not found" ), GetChars( fullFileName ) );
|
msg.Printf( _( "Command <%s> could not found" ), GetChars( fullFileName ) );
|
||||||
DisplayError( frame, msg, 20 );
|
DisplayError( frame, msg, 20 );
|
||||||
|
@ -233,6 +242,7 @@ wxString KicadDatasPath()
|
||||||
}
|
}
|
||||||
else // Path of executables.
|
else // Path of executables.
|
||||||
{
|
{
|
||||||
|
#ifndef __WXMAC__
|
||||||
wxString tmp = Pgm().GetExecutablePath();
|
wxString tmp = Pgm().GetExecutablePath();
|
||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
tmp.MakeLower();
|
tmp.MakeLower();
|
||||||
|
@ -303,6 +313,11 @@ wxString KicadDatasPath()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// On OSX point to Contents/SharedSupport folder of main bundle
|
||||||
|
data_path = GetOSXKicadDataDir();
|
||||||
|
found = true;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if( found )
|
if( found )
|
||||||
|
|
|
@ -113,11 +113,13 @@ const wxString KIWAY::dso_full_path( FACE_T aFaceId )
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __WXMAC__
|
||||||
wxFileName fn = wxStandardPaths::Get().GetExecutablePath();
|
wxFileName fn = wxStandardPaths::Get().GetExecutablePath();
|
||||||
#ifdef __WXMAC__
|
#else
|
||||||
// we have the dso's in @executable_path/../Plugins in OSX bundle
|
// we have the dso's in main OSX bundle kicad.app/Contents/PlugIns
|
||||||
fn.RemoveLastDir();
|
wxFileName fn = Pgm().GetExecutablePath();
|
||||||
fn.AppendDir( wxT( "Plugins" ) );
|
fn.AppendDir( wxT( "Contents" ) );
|
||||||
|
fn.AppendDir( wxT( "PlugIns" ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fn.SetName( name );
|
fn.SetName( name );
|
||||||
|
|
|
@ -412,38 +412,30 @@ bool PGM_BASE::initPgm()
|
||||||
|
|
||||||
bool PGM_BASE::setExecutablePath()
|
bool PGM_BASE::setExecutablePath()
|
||||||
{
|
{
|
||||||
#ifdef __APPLE__ // Apple MacOSx
|
|
||||||
|
|
||||||
// Derive path from location of the app bundle
|
|
||||||
CFBundleRef mainBundle = CFBundleGetMainBundle();
|
|
||||||
|
|
||||||
if( mainBundle == NULL )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
CFURLRef urlref = CFBundleCopyBundleURL( mainBundle );
|
|
||||||
|
|
||||||
if( urlref == NULL )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
CFStringRef str = CFURLCopyFileSystemPath( urlref, kCFURLPOSIXPathStyle );
|
|
||||||
|
|
||||||
if( str == NULL )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
char* native_str = NULL;
|
|
||||||
int len = CFStringGetMaximumSizeForEncoding( CFStringGetLength( str ),
|
|
||||||
kCFStringEncodingUTF8 ) + 1;
|
|
||||||
native_str = new char[len];
|
|
||||||
|
|
||||||
CFStringGetCString( str, native_str, len, kCFStringEncodingUTF8 );
|
|
||||||
m_bin_dir = FROM_UTF8( native_str );
|
|
||||||
delete[] native_str;
|
|
||||||
|
|
||||||
#else
|
|
||||||
m_bin_dir = wxStandardPaths::Get().GetExecutablePath();
|
m_bin_dir = wxStandardPaths::Get().GetExecutablePath();
|
||||||
|
|
||||||
#endif
|
#ifdef __WXMAC__
|
||||||
|
// On OSX Pgm().GetExecutablePath() will always point to main
|
||||||
|
// bundle directory, e.g., /Applications/kicad.app/
|
||||||
|
|
||||||
|
wxFileName fn( m_bin_dir );
|
||||||
|
if( fn.GetName() == wxT( "kicad" ) )
|
||||||
|
{
|
||||||
|
// kicad launcher, so just remove the Contents/MacOS part
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// standalone binaries live in Contents/Applications/<standalone>.app/Contents/MacOS
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
fn.RemoveLastDir();
|
||||||
|
}
|
||||||
|
m_bin_dir = fn.GetPath() + wxT( "/" );
|
||||||
|
#else
|
||||||
// Use unix notation for paths. I am not sure this is a good idea,
|
// Use unix notation for paths. I am not sure this is a good idea,
|
||||||
// but it simplifies compatibility between Windows and Unices.
|
// but it simplifies compatibility between Windows and Unices.
|
||||||
// However it is a potential problem in path handling under Windows.
|
// However it is a potential problem in path handling under Windows.
|
||||||
|
@ -452,6 +444,7 @@ bool PGM_BASE::setExecutablePath()
|
||||||
// Remove file name form command line:
|
// Remove file name form command line:
|
||||||
while( m_bin_dir.Last() != '/' && !m_bin_dir.IsEmpty() )
|
while( m_bin_dir.Last() != '/' && !m_bin_dir.IsEmpty() )
|
||||||
m_bin_dir.RemoveLast();
|
m_bin_dir.RemoveLast();
|
||||||
|
#endif
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,12 @@ const wxString PROJECT::FootprintLibTblName() const
|
||||||
// application title which is no longer constant or known. This next line needs
|
// application title which is no longer constant or known. This next line needs
|
||||||
// to be re-thought out.
|
// to be re-thought out.
|
||||||
|
|
||||||
|
#ifndef __WXMAC__
|
||||||
fn.AssignDir( wxStandardPaths::Get().GetUserConfigDir() );
|
fn.AssignDir( wxStandardPaths::Get().GetUserConfigDir() );
|
||||||
|
#else
|
||||||
|
// don't pollute home folder, temp folder seems to be more appropriate
|
||||||
|
fn.AssignDir( wxStandardPaths::Get().GetTempDir() );
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined( __WINDOWS__ )
|
#if defined( __WINDOWS__ )
|
||||||
fn.AppendDir( wxT( "kicad" ) );
|
fn.AppendDir( wxT( "kicad" ) );
|
||||||
|
|
|
@ -53,8 +53,23 @@ if( MINGW )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
if( APPLE )
|
||||||
|
# setup bundle
|
||||||
|
set( CVPCB_RESOURCES cvpcb.icns cvpcb_doc.icns )
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/cvpcb.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/cvpcb_doc.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set( MACOSX_BUNDLE_ICON_FILE cvpcb.icns )
|
||||||
|
set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-eda.kicad )
|
||||||
|
set( MACOSX_BUNDLE_NAME cvpcb )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if( USE_KIWAY_DLLS )
|
if( USE_KIWAY_DLLS )
|
||||||
add_executable( cvpcb WIN32
|
add_executable( cvpcb WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
../common/pgm_base.cpp
|
../common/pgm_base.cpp
|
||||||
${CVPCB_RESOURCES}
|
${CVPCB_RESOURCES}
|
||||||
|
@ -141,13 +156,32 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
# these 2 binaries are a matched set, keep them together:
|
# these 2 binaries are a matched set, keep them together:
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( cvpcb PROPERTIES
|
set_target_properties( cvpcb PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# puts binaries into the *.app bundle while linking
|
||||||
set_target_properties( cvpcb_kiface PROPERTIES
|
set_target_properties( cvpcb_kiface PROPERTIES
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
||||||
)
|
)
|
||||||
|
# put individual bundle outside of main bundle as a first step
|
||||||
|
# will be pulled into the main bundle when creating main bundle
|
||||||
|
install( TARGETS cvpcb
|
||||||
|
DESTINATION ${KICAD_BIN}
|
||||||
|
COMPONENT binary
|
||||||
|
)
|
||||||
|
install( CODE "
|
||||||
|
# override default embedded path settings
|
||||||
|
${OSX_BUNDLE_OVERRIDE_PATHS}
|
||||||
|
|
||||||
|
# do all the work
|
||||||
|
include( BundleUtilities )
|
||||||
|
fixup_bundle( ${KICAD_BIN}/cvpcb.app/Contents/MacOS/cvpcb
|
||||||
|
\"\"
|
||||||
|
\"\"
|
||||||
|
)
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
install( TARGETS cvpcb
|
install( TARGETS cvpcb
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
|
@ -161,7 +195,7 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
|
||||||
add_executable( cvpcb WIN32
|
add_executable( cvpcb WIN32 MACOSX_BUNDLE
|
||||||
${CVPCB_SRCS}
|
${CVPCB_SRCS}
|
||||||
${CVPCB_DIALOGS}
|
${CVPCB_DIALOGS}
|
||||||
${CVPCB_RESOURCES}
|
${CVPCB_RESOURCES}
|
||||||
|
@ -201,15 +235,8 @@ else()
|
||||||
# Must follow github_plugin
|
# Must follow github_plugin
|
||||||
target_link_libraries( cvpcb ${Boost_LIBRARIES} )
|
target_link_libraries( cvpcb ${Boost_LIBRARIES} )
|
||||||
|
|
||||||
if( APPLE )
|
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( cvpcb PROPERTIES
|
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install( TARGETS cvpcb
|
install( TARGETS cvpcb
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
COMPONENT binary
|
COMPONENT binary
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -233,9 +233,23 @@ set_source_files_properties( dialogs/dialog_bom.cpp
|
||||||
OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
|
OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if( APPLE )
|
||||||
|
# setup bundle
|
||||||
|
set( EESCHEMA_RESOURCES eeschema.icns eeschema_doc.icns )
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/eeschema.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/eeschema_doc.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set( MACOSX_BUNDLE_ICON_FILE eeschema.icns )
|
||||||
|
set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-eda.kicad )
|
||||||
|
set( MACOSX_BUNDLE_NAME eeschema )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if( USE_KIWAY_DLLS )
|
if( USE_KIWAY_DLLS )
|
||||||
add_executable( eeschema WIN32
|
add_executable( eeschema WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
../common/pgm_base.cpp
|
../common/pgm_base.cpp
|
||||||
${EESCHEMA_RESOURCES}
|
${EESCHEMA_RESOURCES}
|
||||||
|
@ -292,13 +306,32 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
# these 2 binaries are a matched set, keep them together:
|
# these 2 binaries are a matched set, keep them together:
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( eeschema PROPERTIES
|
set_target_properties( eeschema PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# puts binaries into the *.app bundle while linking
|
||||||
set_target_properties( eeschema_kiface PROPERTIES
|
set_target_properties( eeschema_kiface PROPERTIES
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
||||||
)
|
)
|
||||||
|
# put individual bundle outside of main bundle as a first step
|
||||||
|
# will be pulled into the main bundle when creating main bundle
|
||||||
|
install( TARGETS eeschema
|
||||||
|
DESTINATION ${KICAD_BIN}
|
||||||
|
COMPONENT binary
|
||||||
|
)
|
||||||
|
install( CODE "
|
||||||
|
# override default embedded path settings
|
||||||
|
${OSX_BUNDLE_OVERRIDE_PATHS}
|
||||||
|
|
||||||
|
# do all the work
|
||||||
|
include( BundleUtilities )
|
||||||
|
fixup_bundle( ${KICAD_BIN}/eeschema.app/Contents/MacOS/eeschema
|
||||||
|
\"\"
|
||||||
|
\"\"
|
||||||
|
)
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
install( TARGETS eeschema
|
install( TARGETS eeschema
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
|
@ -313,7 +346,7 @@ if( USE_KIWAY_DLLS )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
add_executable( eeschema WIN32
|
add_executable( eeschema WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
${EESCHEMA_SRCS}
|
${EESCHEMA_SRCS}
|
||||||
${EESCHEMA_COMMON_SRCS}
|
${EESCHEMA_COMMON_SRCS}
|
||||||
|
@ -333,17 +366,10 @@ else()
|
||||||
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_SCH;PGM_DATA_FILE_EXT=\"sch\";BUILD_KIWAY_DLL"
|
COMPILE_DEFINITIONS "TOP_FRAME=FRAME_SCH;PGM_DATA_FILE_EXT=\"sch\";BUILD_KIWAY_DLL"
|
||||||
)
|
)
|
||||||
|
|
||||||
if( APPLE )
|
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( eeschema PROPERTIES
|
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install( TARGETS eeschema
|
install( TARGETS eeschema
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
COMPONENT binary
|
COMPONENT binary
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,11 @@
|
||||||
<array>
|
<array>
|
||||||
<string>sch</string>
|
<string>sch</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>CFBundleTypeIconFile</key> <string>eeschema_doc.icns</string>
|
||||||
<key>CFBundleTypeIconFile</key> <string>eeschema.icns</string>
|
|
||||||
<key>CFBundleTypeName</key> <string>eeschema document</string>
|
<key>CFBundleTypeName</key> <string>eeschema document</string>
|
||||||
<key>LSHandlerRank</key> <string>Owner</string>
|
<key>LSHandlerRank</key> <string>Owner</string>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<key>CFBundleDevelopmentRegion</key> <string>English</string>
|
<key>CFBundleDevelopmentRegion</key> <string>English</string>
|
||||||
<key>CFBundleExecutable</key> <string>eeschema</string>
|
<key>CFBundleExecutable</key> <string>eeschema</string>
|
||||||
<key>CFBundleGetInfoString</key> <string></string>
|
<key>CFBundleGetInfoString</key> <string></string>
|
||||||
|
|
|
@ -379,7 +379,11 @@ void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
|
||||||
void DIALOG_BOM::OnChoosePlugin( wxCommandEvent& event )
|
void DIALOG_BOM::OnChoosePlugin( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
wxString mask = wxT( "*" );
|
wxString mask = wxT( "*" );
|
||||||
|
#ifndef __WXMAC__
|
||||||
wxString path = Pgm().GetExecutablePath();
|
wxString path = Pgm().GetExecutablePath();
|
||||||
|
#else
|
||||||
|
wxString path = GetOSXKicadDataDir() + wxT( "/plugins" );
|
||||||
|
#endif
|
||||||
|
|
||||||
wxString fullFileName = EDA_FileSelector( _( "Plugin files:" ),
|
wxString fullFileName = EDA_FileSelector( _( "Plugin files:" ),
|
||||||
path,
|
path,
|
||||||
|
|
|
@ -871,7 +871,11 @@ void NETLIST_DIALOG_ADD_PLUGIN::OnBrowsePlugins( wxCommandEvent& event )
|
||||||
wxString FullFileName, Mask, Path;
|
wxString FullFileName, Mask, Path;
|
||||||
|
|
||||||
Mask = wxT( "*" );
|
Mask = wxT( "*" );
|
||||||
|
#ifndef __WXMAC__
|
||||||
Path = Pgm().GetExecutablePath();
|
Path = Pgm().GetExecutablePath();
|
||||||
|
#else
|
||||||
|
Path = GetOSXKicadDataDir() + wxT( "/plugins" );
|
||||||
|
#endif
|
||||||
FullFileName = EDA_FileSelector( _( "Plugin files:" ),
|
FullFileName = EDA_FileSelector( _( "Plugin files:" ),
|
||||||
Path,
|
Path,
|
||||||
FullFileName,
|
FullFileName,
|
||||||
|
|
|
@ -79,9 +79,23 @@ if( MINGW )
|
||||||
mingw_resource_compiler( gerbview )
|
mingw_resource_compiler( gerbview )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if( APPLE )
|
||||||
|
# setup bundle
|
||||||
|
set( GERBVIEW_RESOURCES gerbview.icns gerbview_doc.icns )
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/gerbview.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/gerbview_doc.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set( MACOSX_BUNDLE_ICON_FILE gerbview.icns )
|
||||||
|
set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-eda.kicad )
|
||||||
|
set( MACOSX_BUNDLE_NAME gerbview )
|
||||||
|
endif()
|
||||||
|
|
||||||
if( USE_KIWAY_DLLS )
|
if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
add_executable( gerbview WIN32
|
add_executable( gerbview WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
../common/pgm_base.cpp
|
../common/pgm_base.cpp
|
||||||
${GERBVIEW_RESOURCES}
|
${GERBVIEW_RESOURCES}
|
||||||
|
@ -135,13 +149,32 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
# these 2 binaries are a matched set, keep them together
|
# these 2 binaries are a matched set, keep them together
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( gerbview PROPERTIES
|
set_target_properties( gerbview PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# puts binaries into the *.app bundle while linking
|
||||||
set_target_properties( gerbview_kiface PROPERTIES
|
set_target_properties( gerbview_kiface PROPERTIES
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
||||||
)
|
)
|
||||||
|
# put individual bundle outside of main bundle as a first step
|
||||||
|
# will be pulled into the main bundle when creating main bundle
|
||||||
|
install( TARGETS gerbview
|
||||||
|
DESTINATION ${KICAD_BIN}
|
||||||
|
COMPONENT binary
|
||||||
|
)
|
||||||
|
install( CODE "
|
||||||
|
# override default embedded path settings
|
||||||
|
${OSX_BUNDLE_OVERRIDE_PATHS}
|
||||||
|
|
||||||
|
# do all the work
|
||||||
|
include( BundleUtilities )
|
||||||
|
fixup_bundle( ${KICAD_BIN}/gerbview.app/Contents/MacOS/gerbview
|
||||||
|
\"\"
|
||||||
|
\"\"
|
||||||
|
)
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
install( TARGETS gerbview
|
install( TARGETS gerbview
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
|
@ -155,7 +188,7 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
|
||||||
add_executable( gerbview WIN32
|
add_executable( gerbview WIN32 MACOSX_BUNDLE
|
||||||
gerbview.cpp
|
gerbview.cpp
|
||||||
${GERBVIEW_SRCS}
|
${GERBVIEW_SRCS}
|
||||||
${DIALOGS_SRCS}
|
${DIALOGS_SRCS}
|
||||||
|
@ -170,16 +203,9 @@ else()
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
${GDI_PLUS_LIBRARIES}
|
${GDI_PLUS_LIBRARIES}
|
||||||
)
|
)
|
||||||
if( APPLE )
|
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( gerbview PROPERTIES
|
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install( TARGETS gerbview
|
install( TARGETS gerbview
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
COMPONENT binary
|
COMPONENT binary
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -89,7 +89,7 @@ if( APPLE )
|
||||||
set( SCRIPTING_HELPER "0" )
|
set( SCRIPTING_HELPER "0" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# make bundle relocatable
|
# make main bundle relocatable
|
||||||
install( CODE "
|
install( CODE "
|
||||||
# find all libs and modules
|
# find all libs and modules
|
||||||
file( GLOB BUNDLE_FIX_LIBS ${OSX_BUNDLE_INSTALL_KIFACE_DIR}/*.kiface )
|
file( GLOB BUNDLE_FIX_LIBS ${OSX_BUNDLE_INSTALL_KIFACE_DIR}/*.kiface )
|
||||||
|
@ -101,19 +101,7 @@ if( APPLE )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# override default embedded path settings
|
# override default embedded path settings
|
||||||
function( gp_item_default_embedded_path_override item default_embedded_path_var )
|
${OSX_BUNDLE_OVERRIDE_PATHS}
|
||||||
# by default, embed things right next to the main bundle executable:
|
|
||||||
set( path \"@executable_path/../../Contents/MacOS\" )
|
|
||||||
set( overridden 0 )
|
|
||||||
|
|
||||||
# embed .dylibs right next to the main bundle executable:
|
|
||||||
if( item MATCHES \"\\\\.dylib$\" )
|
|
||||||
set( path \"@executable_path/../Frameworks\" )
|
|
||||||
set( overridden 1 )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set( \${default_embedded_path_var} \"\${path}\" PARENT_SCOPE )
|
|
||||||
endfunction(gp_item_default_embedded_path_override)
|
|
||||||
|
|
||||||
# do all the work
|
# do all the work
|
||||||
include( BundleUtilities )
|
include( BundleUtilities )
|
||||||
|
@ -123,4 +111,32 @@ if( APPLE )
|
||||||
)
|
)
|
||||||
" COMPONENT Runtime
|
" COMPONENT Runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# move all individual app bundles into main bundle
|
||||||
|
install( CODE "
|
||||||
|
# helper function to move a bundle into main bundle
|
||||||
|
function( move_to_main_bundle bundle_name )
|
||||||
|
message( STATUS \"Moving \${bundle_name} into main bundle...\" )
|
||||||
|
file( MAKE_DIRECTORY ${OSX_BUNDLE_INSTALL_DIR}/${OSX_BUNDLE_APP_DIR} )
|
||||||
|
file( REMOVE_RECURSE ${KICAD_BIN}/\${bundle_name}/${OSX_BUNDLE_LIB_DIR} )
|
||||||
|
file( RENAME ${KICAD_BIN}/\${bundle_name} ${OSX_BUNDLE_INSTALL_DIR}/${OSX_BUNDLE_APP_DIR}/\${bundle_name} )
|
||||||
|
execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink \"../../../Frameworks\" \"Frameworks\"
|
||||||
|
WORKING_DIRECTORY ${OSX_BUNDLE_INSTALL_DIR}/${OSX_BUNDLE_APP_DIR}/\${bundle_name}/Contents
|
||||||
|
)
|
||||||
|
# create a top-level link pointing inside main bundle
|
||||||
|
execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink \"${OSX_BUNDLE_MAIN}/${OSX_BUNDLE_APP_DIR}/\${bundle_name}\" \"\${bundle_name}\"
|
||||||
|
WORKING_DIRECTORY ${KICAD_BIN}
|
||||||
|
)
|
||||||
|
endfunction( move_to_main_bundle )
|
||||||
|
|
||||||
|
# move all app bundles
|
||||||
|
move_to_main_bundle( bitmap2component.app )
|
||||||
|
move_to_main_bundle( eeschema.app )
|
||||||
|
move_to_main_bundle( cvpcb.app )
|
||||||
|
move_to_main_bundle( gerbview.app )
|
||||||
|
move_to_main_bundle( pcb_calculator.app )
|
||||||
|
move_to_main_bundle( pcbnew.app )
|
||||||
|
move_to_main_bundle( pl_editor.app )
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <build_version.h>
|
#include <build_version.h>
|
||||||
#include <macros.h>
|
#include <macros.h>
|
||||||
|
#include <common.h>
|
||||||
|
|
||||||
#include <wx/dir.h>
|
#include <wx/dir.h>
|
||||||
#include <wx/filename.h>
|
#include <wx/filename.h>
|
||||||
|
@ -74,6 +75,7 @@ void KICAD_MANAGER_FRAME::CreateNewProject( const wxString& aPrjFullFileName,
|
||||||
wxFileName templatePath;
|
wxFileName templatePath;
|
||||||
wxString envStr;
|
wxString envStr;
|
||||||
|
|
||||||
|
#ifndef __WXMAC__
|
||||||
wxGetEnv( wxT( "KICAD" ), &envStr );
|
wxGetEnv( wxT( "KICAD" ), &envStr );
|
||||||
|
|
||||||
// Add a new tab for system templates
|
// Add a new tab for system templates
|
||||||
|
@ -101,6 +103,10 @@ void KICAD_MANAGER_FRAME::CreateNewProject( const wxString& aPrjFullFileName,
|
||||||
sep + wxT( ".." ) + sep + wxT( "share" ) + sep + wxT( "template" ) + sep;
|
sep + wxT( ".." ) + sep + wxT( "share" ) + sep + wxT( "template" ) + sep;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// Use what is provided in the bundle data dir
|
||||||
|
templatePath = GetOSXKicadDataDir() + sep + wxT( "template" );
|
||||||
|
#endif
|
||||||
|
|
||||||
ps->AddPage( _( "System Templates" ), templatePath );
|
ps->AddPage( _( "System Templates" ), templatePath );
|
||||||
|
|
||||||
|
|
|
@ -53,10 +53,25 @@ if( MINGW )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
if( APPLE )
|
||||||
|
# setup bundle
|
||||||
|
set( PL_EDITOR_RESOURCES pl_editor.icns pl_editor_doc.icns )
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/pl_editor.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/pl_editor_doc.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set( MACOSX_BUNDLE_ICON_FILE pl_editor.icns )
|
||||||
|
set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-eda.kicad )
|
||||||
|
set( MACOSX_BUNDLE_NAME pl_editor )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if( USE_KIWAY_DLLS )
|
if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
# a very small program launcher for pl_editor_kiface
|
# a very small program launcher for pl_editor_kiface
|
||||||
add_executable( pl_editor WIN32
|
add_executable( pl_editor WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
../common/pgm_base.cpp
|
../common/pgm_base.cpp
|
||||||
${PL_EDITOR_RESOURCES}
|
${PL_EDITOR_RESOURCES}
|
||||||
|
@ -110,13 +125,32 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
# these 2 binaries are a matched set, keep them together:
|
# these 2 binaries are a matched set, keep them together:
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( pl_editor PROPERTIES
|
set_target_properties( pl_editor PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# puts binaries into the *.app bundle while linking
|
||||||
set_target_properties( pl_editor_kiface PROPERTIES
|
set_target_properties( pl_editor_kiface PROPERTIES
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
||||||
)
|
)
|
||||||
|
# put individual bundle outside of main bundle as a first step
|
||||||
|
# will be pulled into the main bundle when creating main bundle
|
||||||
|
install( TARGETS pl_editor
|
||||||
|
DESTINATION ${KICAD_BIN}
|
||||||
|
COMPONENT binary
|
||||||
|
)
|
||||||
|
install( CODE "
|
||||||
|
# override default embedded path settings
|
||||||
|
${OSX_BUNDLE_OVERRIDE_PATHS}
|
||||||
|
|
||||||
|
# do all the work
|
||||||
|
include( BundleUtilities )
|
||||||
|
fixup_bundle( ${KICAD_BIN}/pl_editor.app/Contents/MacOS/pl_editor
|
||||||
|
\"\"
|
||||||
|
\"\"
|
||||||
|
)
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
install( TARGETS pl_editor
|
install( TARGETS pl_editor
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
|
@ -130,7 +164,7 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
|
||||||
add_executable( pl_editor WIN32
|
add_executable( pl_editor WIN32 MACOSX_BUNDLE
|
||||||
pl_editor.cpp
|
pl_editor.cpp
|
||||||
${PL_EDITOR_SRCS}
|
${PL_EDITOR_SRCS}
|
||||||
${DIALOGS_SRCS}
|
${DIALOGS_SRCS}
|
||||||
|
@ -145,15 +179,9 @@ else()
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
${GDI_PLUS_LIBRARIES}
|
${GDI_PLUS_LIBRARIES}
|
||||||
)
|
)
|
||||||
if( APPLE )
|
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( pl_editor PROPERTIES
|
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install( TARGETS pl_editor
|
install( TARGETS pl_editor
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
COMPONENT binary
|
COMPONENT binary
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -10,13 +10,11 @@
|
||||||
<array>
|
<array>
|
||||||
<string>kicad_wks</string>
|
<string>kicad_wks</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>CFBundleTypeIconFile</key> <string>pl_editor_doc.icns</string>
|
||||||
<key>CFBundleTypeIconFile</key> <string>pl_editor.icns</string>
|
|
||||||
<key>CFBundleTypeName</key> <string>pl_editor document</string>
|
<key>CFBundleTypeName</key> <string>pl_editor document</string>
|
||||||
<key>LSHandlerRank</key> <string>Owner</string>
|
<key>LSHandlerRank</key> <string>Owner</string>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<key>CFBundleDevelopmentRegion</key> <string>English</string>
|
<key>CFBundleDevelopmentRegion</key> <string>English</string>
|
||||||
<key>CFBundleExecutable</key> <string>pl_editor</string>
|
<key>CFBundleExecutable</key> <string>pl_editor</string>
|
||||||
<key>CFBundleGetInfoString</key> <string></string>
|
<key>CFBundleGetInfoString</key> <string></string>
|
||||||
|
|
|
@ -54,11 +54,22 @@ make_lexer(
|
||||||
datafile_read_write.h
|
datafile_read_write.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if( APPLE )
|
||||||
|
# setup bundle
|
||||||
|
set( PCB_CALCULATOR_RESOURCES pcb_calculator.icns )
|
||||||
|
set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator.icns" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION Resources
|
||||||
|
)
|
||||||
|
set( MACOSX_BUNDLE_ICON_FILE pcb_calculator.icns )
|
||||||
|
set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-eda.kicad )
|
||||||
|
set( MACOSX_BUNDLE_NAME pcb_calculator )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if( USE_KIWAY_DLLS )
|
if( USE_KIWAY_DLLS )
|
||||||
#if( false )
|
#if( false )
|
||||||
|
|
||||||
add_executable( pcb_calculator WIN32
|
add_executable( pcb_calculator WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
../common/pgm_base.cpp
|
../common/pgm_base.cpp
|
||||||
${PCB_CALCULATOR_RESOURCES}
|
${PCB_CALCULATOR_RESOURCES}
|
||||||
|
@ -108,13 +119,32 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
# these 2 binaries are a matched set, keep them together
|
# these 2 binaries are a matched set, keep them together
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( pcb_calculator PROPERTIES
|
set_target_properties( pcb_calculator PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# puts binaries into the *.app bundle while linking
|
||||||
set_target_properties( pcb_calculator_kiface PROPERTIES
|
set_target_properties( pcb_calculator_kiface PROPERTIES
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
|
||||||
)
|
)
|
||||||
|
# put individual bundle outside of main bundle as a first step
|
||||||
|
# will be pulled into the main bundle when creating main bundle
|
||||||
|
install( TARGETS pcb_calculator
|
||||||
|
DESTINATION ${KICAD_BIN}
|
||||||
|
COMPONENT binary
|
||||||
|
)
|
||||||
|
install( CODE "
|
||||||
|
# override default embedded path settings
|
||||||
|
${OSX_BUNDLE_OVERRIDE_PATHS}
|
||||||
|
|
||||||
|
# do all the work
|
||||||
|
include( BundleUtilities )
|
||||||
|
fixup_bundle( ${KICAD_BIN}/pcb_calculator.app/Contents/MacOS/pcb_calculator
|
||||||
|
\"\"
|
||||||
|
\"\"
|
||||||
|
)
|
||||||
|
" COMPONENT Runtime
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
install( TARGETS pcb_calculator
|
install( TARGETS pcb_calculator
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
|
@ -128,7 +158,7 @@ if( USE_KIWAY_DLLS )
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
|
||||||
add_executable( pcb_calculator WIN32
|
add_executable( pcb_calculator WIN32 MACOSX_BUNDLE
|
||||||
../common/single_top.cpp
|
../common/single_top.cpp
|
||||||
pcb_calculator.cpp
|
pcb_calculator.cpp
|
||||||
${PCB_CALCULATOR_SRCS}
|
${PCB_CALCULATOR_SRCS}
|
||||||
|
@ -146,16 +176,9 @@ else()
|
||||||
polygon
|
polygon
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
)
|
)
|
||||||
if( APPLE )
|
|
||||||
# puts binaries into the *.app bundle while linking
|
|
||||||
set_target_properties( pcb_calculator PROPERTIES
|
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install( TARGETS pcb_calculator
|
install( TARGETS pcb_calculator
|
||||||
DESTINATION ${KICAD_BIN}
|
DESTINATION ${KICAD_BIN}
|
||||||
COMPONENT binary
|
COMPONENT binary
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -217,7 +217,7 @@ static bool scriptingSetup()
|
||||||
{
|
{
|
||||||
wxString path_frag;
|
wxString path_frag;
|
||||||
|
|
||||||
#ifdef __MINGW32__
|
#if defined( __MINGW32__ )
|
||||||
// force python environment under Windows:
|
// force python environment under Windows:
|
||||||
const wxString python_us( "python27_us" );
|
const wxString python_us( "python27_us" );
|
||||||
|
|
||||||
|
@ -261,28 +261,24 @@ static bool scriptingSetup()
|
||||||
// [KICAD_PATH]/scripting/plugins
|
// [KICAD_PATH]/scripting/plugins
|
||||||
// Add this default search path:
|
// Add this default search path:
|
||||||
path_frag = Pgm().GetExecutablePath() + wxT( "scripting/plugins" );
|
path_frag = Pgm().GetExecutablePath() + wxT( "scripting/plugins" );
|
||||||
#elif defined __WXMAC__
|
#elif defined( __WXMAC__ )
|
||||||
// User plugin folder is ~/Library/Application Support/kicad/scripting/plugins
|
// User plugin folder is ~/Library/Application Support/kicad/scripting/plugins
|
||||||
path_frag = wxStandardPaths::Get().GetUserDataDir() + wxT( "/scripting/plugins" );
|
path_frag = GetOSXKicadUserDataDir() + wxT( "/scripting/plugins" );
|
||||||
|
|
||||||
// Add default paths to PYTHONPATH
|
// Add default paths to PYTHONPATH
|
||||||
wxString pypath;
|
wxString pypath;
|
||||||
// User scripting folder (~/Library/Application Support/kicad/scripting/plugins)
|
// User scripting folder (~/Library/Application Support/kicad/scripting/plugins)
|
||||||
pypath = wxStandardPaths::Get().GetUserDataDir() + wxT( "/scripting/plugins" );
|
pypath = GetOSXKicadUserDataDir() + wxT( "/scripting/plugins" );
|
||||||
// Machine scripting folder (/Library/Application Support/kicad/scripting/plugins)
|
// Machine scripting folder (/Library/Application Support/kicad/scripting/plugins)
|
||||||
pypath += wxT( ":/Library/Application Support/kicad/scripting/plugins" );
|
pypath += wxT( ":" ) + GetOSXKicadMachineDataDir() + wxT( "/scripting/plugins" );
|
||||||
// Bundle scripting folder (<kicad.app>/Contents/SharedSupport/scripting/plugins)
|
// Bundle scripting folder (<kicad.app>/Contents/SharedSupport/scripting/plugins)
|
||||||
pypath += wxT( ":" ) + wxStandardPaths::Get().GetDataDir() + wxT( "/scripting/plugins" );
|
pypath += wxT( ":" ) + GetOSXKicadDataDir() + wxT( "/scripting/plugins" );
|
||||||
// Bundle wxPython folder (<kicad.app>/Contents/Frameworks/python)
|
// Bundle wxPython folder (<kicad.app>/Contents/Frameworks/python/site-packages)
|
||||||
wxFileName fn = wxFileName( wxStandardPaths::Get().GetExecutablePath() );
|
pypath += wxT( ":" ) + Pgm().GetExecutablePath() + wxT( "Contents/Frameworks/python/site-packages" );
|
||||||
fn.RemoveLastDir();
|
// Original content of $PYTHONPATH
|
||||||
fn.AppendDir( wxT( "Frameworks" ) );
|
|
||||||
fn.AppendDir( wxT( "python" ) );
|
|
||||||
pypath += wxT( ":" ) + fn.GetPath();
|
|
||||||
// Original content of PYTHONPATH
|
|
||||||
if( wxGetenv("PYTHONPATH") != NULL )
|
if( wxGetenv("PYTHONPATH") != NULL )
|
||||||
{
|
{
|
||||||
pypath += wxT( ":" ) + wxString( wxGetenv("PYTHONPATH") );
|
pypath = wxString( wxGetenv("PYTHONPATH") ) + wxT( ":" ) + pypath;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set $PYTHONPATH
|
// set $PYTHONPATH
|
||||||
|
@ -292,9 +288,6 @@ static bool scriptingSetup()
|
||||||
path_frag = wxT( "/usr/local/kicad/bin/scripting/plugins" );
|
path_frag = wxT( "/usr/local/kicad/bin/scripting/plugins" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// On linux and osx, 2 others paths are
|
|
||||||
// [HOME]/.kicad_plugins/
|
|
||||||
// [HOME]/.kicad/scripting/plugins/
|
|
||||||
if( !pcbnewInitPythonScripting( TO_UTF8( path_frag ) ) )
|
if( !pcbnewInitPythonScripting( TO_UTF8( path_frag ) ) )
|
||||||
{
|
{
|
||||||
wxLogSysError( wxT( "pcbnewInitPythonScripting() failed." ) );
|
wxLogSysError( wxT( "pcbnewInitPythonScripting() failed." ) );
|
||||||
|
|
Loading…
Reference in New Issue