Commit 7f6bc781 authored by Maciej Suminski's avatar Maciej Suminski

Upstream merge.

parents 15b8d3d2 c63fa6ff
...@@ -59,7 +59,7 @@ void S3D_MATERIAL::SetMaterial() ...@@ -59,7 +59,7 @@ void S3D_MATERIAL::SetMaterial()
void S3D_MASTER::Copy( S3D_MASTER* pattern ) void S3D_MASTER::Copy( S3D_MASTER* pattern )
{ {
m_Shape3DName = pattern->m_Shape3DName; SetShape3DName( pattern->GetShape3DName() );
m_MatScale = pattern->m_MatScale; m_MatScale = pattern->m_MatScale;
m_MatRotation = pattern->m_MatRotation; m_MatRotation = pattern->m_MatRotation;
m_MatPosition = pattern->m_MatPosition; m_MatPosition = pattern->m_MatPosition;
...@@ -74,6 +74,7 @@ S3D_MASTER::S3D_MASTER( EDA_ITEM* aParent ) : ...@@ -74,6 +74,7 @@ S3D_MASTER::S3D_MASTER( EDA_ITEM* aParent ) :
m_MatScale.x = m_MatScale.y = m_MatScale.z = 1.0; m_MatScale.x = m_MatScale.y = m_MatScale.z = 1.0;
m_3D_Drawings = NULL; m_3D_Drawings = NULL;
m_Materials = NULL; m_Materials = NULL;
m_ShapeType = FILE3D_NONE;
} }
...@@ -96,6 +97,45 @@ S3D_MASTER:: ~S3D_MASTER() ...@@ -96,6 +97,45 @@ S3D_MASTER:: ~S3D_MASTER()
} }
bool S3D_MASTER::Is3DType( enum FILE3D_TYPE aShapeType )
{
// type 'none' is not valid and will always return false
if( aShapeType == FILE3D_NONE )
return false;
// no one is interested if we have no file
if( m_Shape3DName.empty() )
return false;
if( aShapeType == m_ShapeType )
return true;
return false;
}
void S3D_MASTER::SetShape3DName( const wxString& aShapeName )
{
m_ShapeType = FILE3D_NONE;
m_Shape3DName = aShapeName;
if( m_Shape3DName.empty() )
return;
wxFileName fn = m_Shape3DName;
wxString ext = fn.GetExt();
if( ext == wxT( "wrl" ) || ext == wxT( "x3d" ) )
m_ShapeType = FILE3D_VRML;
else if( ext == wxT( "idf" ) )
m_ShapeType = FILE3D_IDF;
else
m_ShapeType = FILE3D_UNKNOWN;
return;
}
STRUCT_3D_SHAPE::STRUCT_3D_SHAPE( EDA_ITEM* aParent ) : STRUCT_3D_SHAPE::STRUCT_3D_SHAPE( EDA_ITEM* aParent ) :
EDA_ITEM( aParent, NOT_USED ) EDA_ITEM( aParent, NOT_USED )
{ {
......
...@@ -857,7 +857,7 @@ void MODULE::ReadAndInsert3DComponentShape( EDA_3D_CANVAS* glcanvas ) ...@@ -857,7 +857,7 @@ void MODULE::ReadAndInsert3DComponentShape( EDA_3D_CANVAS* glcanvas )
for( ; struct3D != NULL; struct3D = struct3D->Next() ) for( ; struct3D != NULL; struct3D = struct3D->Next() )
{ {
if( !struct3D->m_Shape3DName.IsEmpty() ) if( struct3D->Is3DType( S3D_MASTER::FILE3D_VRML ) )
struct3D->ReadData(); struct3D->ReadData();
} }
......
...@@ -141,8 +141,6 @@ void EDA_3D_FRAME::Exit3DFrame( wxCommandEvent& event ) ...@@ -141,8 +141,6 @@ void EDA_3D_FRAME::Exit3DFrame( wxCommandEvent& event )
void EDA_3D_FRAME::OnCloseWindow( wxCloseEvent& Event ) void EDA_3D_FRAME::OnCloseWindow( wxCloseEvent& Event )
{ {
SaveSettings();
if( Parent() ) if( Parent() )
Parent()->m_Draw3DFrame = NULL; Parent()->m_Draw3DFrame = NULL;
......
...@@ -92,13 +92,24 @@ public: ...@@ -92,13 +92,24 @@ public:
class S3D_MASTER : public EDA_ITEM class S3D_MASTER : public EDA_ITEM
{ {
public: public:
wxString m_Shape3DName; /* 3D shape name in 3D library */
S3D_VERTEX m_MatScale; S3D_VERTEX m_MatScale;
S3D_VERTEX m_MatRotation; S3D_VERTEX m_MatRotation;
S3D_VERTEX m_MatPosition; S3D_VERTEX m_MatPosition;
STRUCT_3D_SHAPE* m_3D_Drawings; STRUCT_3D_SHAPE* m_3D_Drawings;
S3D_MATERIAL* m_Materials; S3D_MATERIAL* m_Materials;
enum FILE3D_TYPE
{
FILE3D_NONE = 0,
FILE3D_VRML,
FILE3D_IDF,
FILE3D_UNKNOWN
};
private:
wxString m_Shape3DName; /* 3D shape name in 3D library */
FILE3D_TYPE m_ShapeType;
public: public:
S3D_MASTER( EDA_ITEM* aParent ); S3D_MASTER( EDA_ITEM* aParent );
~S3D_MASTER(); ~S3D_MASTER();
...@@ -120,6 +131,20 @@ public: ...@@ -120,6 +131,20 @@ public:
#if defined(DEBUG) #if defined(DEBUG)
void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override
#endif #endif
/**
* Function Is3DType
* returns true if the argument matches the type of model referred to
* by m_Shape3DName
*/
bool Is3DType( enum FILE3D_TYPE aShapeType );
const wxString& GetShape3DName( void )
{
return m_Shape3DName;
}
void SetShape3DName( const wxString& aShapeName );
}; };
......
...@@ -14,6 +14,9 @@ set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules ) ...@@ -14,6 +14,9 @@ set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules )
# reports. # reports.
# #
option( USE_KIWAY_DLLS
"Build the major modules as DLLs or DSOs, will soon be the norm." OFF )
#for those who bored with uppercase #for those who bored with uppercase
option( KICAD_KEEPCASE "turn-off automatic component name conversion to uppercase if selected" ) option( KICAD_KEEPCASE "turn-off automatic component name conversion to uppercase if selected" )
...@@ -109,7 +112,7 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) ...@@ -109,7 +112,7 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
endif() endif()
set( CMAKE_C_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG" ) set( CMAKE_C_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG" )
set( CMAKE_CXX_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG" ) set( CMAKE_CXX_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG -Wno-deprecated-declarations" )
set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG" ) set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG" ) set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG" )
...@@ -146,32 +149,50 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) ...@@ -146,32 +149,50 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
endif() endif()
else() else()
# We build DLL/DSOs from static libraries, so create position independent code # We build DLL/DSOs from static libraries, so create position independent
# for all cases, since we do not have DLL/DSO specific static libraries. # code for all cases, since we do not have DLL/DSO specific static
# Subdirectories via add_subdirectores() reference this variable, and it is either set or empty, # libraries. Subdirectories via add_subdirectores() reference this
# empty for Windows. # variable, and it is either set or empty, empty for Windows.
set( PIC_FLAG -fPIC ) set( PIC_FLAG -fPIC )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PIC_FLAG}" ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PIC_FLAG}" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PIC_FLAG}" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PIC_FLAG}" )
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
set( TO_LINKER -XLinker )
else()
set( TO_LINKER -Wl )
endif()
# Thou shalt not link vaporware and tell us it's a valid DSO: # Thou shalt not link vaporware and tell us it's a valid DSO:
set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" ) set( CMAKE_SHARED_LINKER_FLAGS "${TO_LINKER},--no-undefined" )
set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" ) # needed by SWIG macros on linux set( CMAKE_MODULE_LINKER_FLAGS "${TO_LINKER},--no-undefined" )
# Set default flags for Release build.
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" ) set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" )
endif() endif()
# quiet GCC 4.8.1 while in boost # quiet GCC while in boost
if( GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8 ) if( GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8 )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs" )
endif() endif()
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing" )
if( APPLE ) if( APPLE )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__ASSERTMACROS__ -mmacosx-version-min=10.5" ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__ASSERTMACROS__ -mmacosx-version-min=10.5" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__ASSERTMACROS__ -mmacosx-version-min=10.5" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__ASSERTMACROS__ -mmacosx-version-min=10.5" )
# Allows .dylib relocation in the future
set( CMAKE_LD_FLAGS "${CMAKE_LD_FLAGS} -headerpad_max_install_names")
if( NOT CMAKE_CXX_COMPILER )
EXEC_PROGRAM( wx-config ARGS --cc OUTPUT_VARIABLE CMAKE_C_COMPILER )
endif( NOT CMAKE_CXX_COMPILER )
if( NOT CMAKE_CXX_COMPILER )
EXEC_PROGRAM( wx-config ARGS --cxx OUTPUT_VARIABLE CMAKE_CXX_COMPILER )
endif( NOT CMAKE_CXX_COMPILER )
endif() endif()
endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
...@@ -259,19 +280,6 @@ include( Functions ) ...@@ -259,19 +280,6 @@ include( Functions )
include( ExternalProject ) include( ExternalProject )
if ( APPLE )
set( KICAD_BUILD_STATIC ON)
if( NOT CMAKE_CXX_COMPILER )
EXEC_PROGRAM( wx-config ARGS --cc OUTPUT_VARIABLE CMAKE_C_COMPILER )
endif( NOT CMAKE_CXX_COMPILER )
if( NOT CMAKE_CXX_COMPILER )
EXEC_PROGRAM( wx-config ARGS --cxx OUTPUT_VARIABLE CMAKE_CXX_COMPILER )
endif( NOT CMAKE_CXX_COMPILER )
endif( APPLE )
#================================================ #================================================
# Find libraries that are needed to build KiCad. # Find libraries that are needed to build KiCad.
#================================================ #================================================
...@@ -286,10 +294,36 @@ add_definitions(-DWX_COMPATIBILITY) ...@@ -286,10 +294,36 @@ add_definitions(-DWX_COMPATIBILITY)
find_package( OpenGL QUIET ) find_package( OpenGL QUIET )
check_find_package_result( OPENGL_FOUND "OpenGL" ) check_find_package_result( OPENGL_FOUND "OpenGL" )
if ( KICAD_BUILD_STATIC ) if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
#set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so;.dylib;.dll") #set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so;.dylib;.dll")
if( KICAD_BUILD_STATIC AND KICAD_BUILD_DYNAMIC )
message(FATAL_ERROR "You can't build STATIC and DYNAMIC together")
endif()
if( KICAD_BUILD_STATIC )
message(STATUS "KICAD_BUILD_STATIC set")
endif()
if( KICAD_BUILD_DYNAMIC )
message(STATUS "KICAD_BUILD_DYNAMIC set")
# TODO - Library packaging/relocation
endif()
add_custom_target( lib-dependencies
DEPENDS boost cairo glew libpng pixman pkgconfig
)
include( download_libpng )
if( KICAD_SCRIPTING_WXPYTHON )
message(FATAL_ERROR "KICAD_BUILD_* and SCRIPTING Not Implemented Yet!")
else()
include( download_wxwidgets )
add_dependencies( lib-dependencies libwx )
endif( KICAD_SCRIPTING_WXPYTHON )
include( download_pkgconfig ) include( download_pkgconfig )
set( PKG_CONFIG_EXECUTABLE "${PKGCONFIG_ROOT}/bin/pkg-config") set( PKG_CONFIG_EXECUTABLE "${PKGCONFIG_ROOT}/bin/pkg-config")
include( download_glew ) include( download_glew )
...@@ -297,11 +331,17 @@ if ( KICAD_BUILD_STATIC ) ...@@ -297,11 +331,17 @@ if ( KICAD_BUILD_STATIC )
set( GLEW_INCLUDE_DIR "${GLEW_ROOT}/include") set( GLEW_INCLUDE_DIR "${GLEW_ROOT}/include")
include( download_pixman ) include( download_pixman )
set( PIXMAN_LIBRARY "${PIXMAN_ROOT}/lib/libpixman-1.a") set( PIXMAN_LIBRARY "${PIXMAN_ROOT}/lib/libpixman-1.a")
include( download_libpng )
include( download_cairo ) include( download_cairo )
set( CAIRO_INCLUDE_DIR "${CAIRO_ROOT}/include/cairo") set( CAIRO_INCLUDE_DIR "${CAIRO_ROOT}/include/cairo")
set( CAIRO_LIBRARY "${CAIRO_ROOT}/lib/libcairo.a") set( CAIRO_LIBRARY "${CAIRO_ROOT}/lib/libcairo.a")
endif( KICAD_BUILD_STATIC )
if( KICAD_BUILD_DYNAMIC AND APPLE )
add_custom_target( osx_fix_bundles ALL DEPENDS cvpcb eeschema gerbview kicad pcbnew bitmap2component pcb_calculator pl_editor)
add_custom_command(TARGET osx_fix_bundles POST_BUILD COMMAND scripts/osx_fixbundle.sh COMMENT "Migrating dylibs to bundles")
endif()
endif( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC)
##################### #####################
# Find GLEW library # # Find GLEW library #
...@@ -341,13 +381,16 @@ endif() ...@@ -341,13 +381,16 @@ endif()
# http://www.wxwidgets.org/manuals/2.8/wx_librarieslist.html # http://www.wxwidgets.org/manuals/2.8/wx_librarieslist.html
# On Apple only wxwidgets 2.9 or higher doesn't need to find aui part of base # On Apple only wxwidgets 2.9 or higher doesn't need to find aui part of base
if( APPLE ) # Seems no more needed on wx-3
if( APPLE AND NOT (KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC) )
find_package( wxWidgets COMPONENTS gl adv html core net base xml QUIET ) find_package( wxWidgets COMPONENTS gl adv html core net base xml QUIET )
else() else()
find_package( wxWidgets COMPONENTS gl aui adv html core net base xml QUIET ) find_package( wxWidgets COMPONENTS gl aui adv html core net base xml QUIET )
endif() endif()
check_find_package_result( wxWidgets_FOUND "wxWidgets" )
if( NOT (KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC) )
check_find_package_result( wxWidgets_FOUND "wxWidgets" )
endif( NOT (KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC) )
# Include wxWidgets macros. # Include wxWidgets macros.
include( ${wxWidgets_USE_FILE} ) include( ${wxWidgets_USE_FILE} )
...@@ -478,6 +521,26 @@ add_dependencies( pl_editor boost ) ...@@ -478,6 +521,26 @@ add_dependencies( pl_editor boost )
add_dependencies( pnsrouter boost ) add_dependencies( pnsrouter boost )
if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
add_dependencies( pcbnew lib-dependencies )
add_dependencies( eeschema lib-dependencies )
add_dependencies( cvpcb lib-dependencies )
add_dependencies( gal lib-dependencies )
add_dependencies( common lib-dependencies )
add_dependencies( pcbcommon lib-dependencies )
add_dependencies( 3d-viewer lib-dependencies )
add_dependencies( pcad2kicadpcb lib-dependencies )
add_dependencies( polygon lib-dependencies )
add_dependencies( pl_editor lib-dependencies )
add_dependencies( pnsrouter lib-dependencies )
if ( BUILD_GITHUB_PLUGIN )
add_dependencies( github_plugin lib-dependencies )
endif()
endif()
if ( KICAD_BUILD_DYNAMIC )
endif()
############# #############
# Resources # # Resources #
############# #############
......
...@@ -144,12 +144,10 @@ ...@@ -144,12 +144,10 @@
# Helper macro to control the debugging output globally. There are # Helper macro to control the debugging output globally. There are
# two versions for controlling how verbose your output should be. # two versions for controlling how verbose your output should be.
MACRO(DBG_MSG _MSG) MACRO(DBG_MSG _MSG)
# MESSAGE(STATUS # MESSAGE(WARNING "${_MSG}")
# "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}")
ENDMACRO(DBG_MSG) ENDMACRO(DBG_MSG)
MACRO(DBG_MSG_V _MSG) MACRO(DBG_MSG_V _MSG)
# MESSAGE(STATUS # MESSAGE(WARNING "${_MSG}")
# "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}")
ENDMACRO(DBG_MSG_V) ENDMACRO(DBG_MSG_V)
# Clear return values in case the module is loaded more than once. # Clear return values in case the module is loaded more than once.
...@@ -201,18 +199,24 @@ ENDIF(EXISTS "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake") ...@@ -201,18 +199,24 @@ ENDIF(EXISTS "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake")
#===================================================================== #=====================================================================
#===================================================================== #=====================================================================
IF(WIN32 AND NOT CYGWIN AND NOT MSYS)
IF(WIN32 AND NOT CYGWIN AND NOT MSYS AND NOT CMAKE_HOST_UNIX )
DBG_MSG( "setting win32 style" )
SET(wxWidgets_FIND_STYLE "win32") SET(wxWidgets_FIND_STYLE "win32")
ELSE(WIN32 AND NOT CYGWIN AND NOT MSYS) ELSE()
IF(UNIX OR MSYS) IF(CMAKE_HOST_UNIX OR MSYS)
DBG_MSG( "unix style" )
SET(wxWidgets_FIND_STYLE "unix") SET(wxWidgets_FIND_STYLE "unix")
ENDIF(UNIX OR MSYS) ENDIF()
ENDIF(WIN32 AND NOT CYGWIN AND NOT MSYS) ENDIF()
#===================================================================== #=====================================================================
# WIN32_FIND_STYLE # WIN32_FIND_STYLE
#===================================================================== #=====================================================================
IF(wxWidgets_FIND_STYLE STREQUAL "win32") IF(wxWidgets_FIND_STYLE STREQUAL "win32")
DBG_MSG("Using win32 path")
# Useful common wx libs needed by almost all components. # Useful common wx libs needed by almost all components.
SET(wxWidgets_COMMON_LIBRARIES png tiff jpeg zlib regex expat) SET(wxWidgets_COMMON_LIBRARIES png tiff jpeg zlib regex expat)
...@@ -271,9 +275,13 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -271,9 +275,13 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
MARK_AS_ADVANCED(WX_${LIB}${_DBG}) MARK_AS_ADVANCED(WX_${LIB}${_DBG})
ENDFOREACH(LIB) ENDFOREACH(LIB)
DBG_MSG( "WX_LIB_DIR:${WX_LIB_DIR}" )
# Find wxWidgets multilib base libraries. # Find wxWidgets multilib base libraries.
FIND_LIBRARY(WX_base${_DBG} FIND_LIBRARY(WX_base${_DBG}
NAMES NAMES
wxbase31${_UCD}${_DBG}
wxbase30${_UCD}${_DBG}
wxbase29${_UCD}${_DBG} wxbase29${_UCD}${_DBG}
wxbase28${_UCD}${_DBG} wxbase28${_UCD}${_DBG}
wxbase27${_UCD}${_DBG} wxbase27${_UCD}${_DBG}
...@@ -286,6 +294,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -286,6 +294,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
FOREACH(LIB net odbc xml) FOREACH(LIB net odbc xml)
FIND_LIBRARY(WX_${LIB}${_DBG} FIND_LIBRARY(WX_${LIB}${_DBG}
NAMES NAMES
wxbase31${_UCD}${_DBG}_${LIB}
wxbase30${_UCD}${_DBG}_${LIB}
wxbase29${_UCD}${_DBG}_${LIB} wxbase29${_UCD}${_DBG}_${LIB}
wxbase28${_UCD}${_DBG}_${LIB} wxbase28${_UCD}${_DBG}_${LIB}
wxbase27${_UCD}${_DBG}_${LIB} wxbase27${_UCD}${_DBG}_${LIB}
...@@ -300,6 +310,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -300,6 +310,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
# Find wxWidgets monolithic library. # Find wxWidgets monolithic library.
FIND_LIBRARY(WX_mono${_DBG} FIND_LIBRARY(WX_mono${_DBG}
NAMES NAMES
wxmsw${_UNV}31${_UCD}${_DBG}
wxmsw${_UNV}30${_UCD}${_DBG}
wxmsw${_UNV}29${_UCD}${_DBG} wxmsw${_UNV}29${_UCD}${_DBG}
wxmsw${_UNV}28${_UCD}${_DBG} wxmsw${_UNV}28${_UCD}${_DBG}
wxmsw${_UNV}27${_UCD}${_DBG} wxmsw${_UNV}27${_UCD}${_DBG}
...@@ -315,6 +327,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -315,6 +327,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
stc ribbon propgrid) stc ribbon propgrid)
FIND_LIBRARY(WX_${LIB}${_DBG} FIND_LIBRARY(WX_${LIB}${_DBG}
NAMES NAMES
wxmsw${_UNV}31${_UCD}${_DBG}_${LIB}
wxmsw${_UNV}30${_UCD}${_DBG}_${LIB}
wxmsw${_UNV}29${_UCD}${_DBG}_${LIB} wxmsw${_UNV}29${_UCD}${_DBG}_${LIB}
wxmsw${_UNV}28${_UCD}${_DBG}_${LIB} wxmsw${_UNV}28${_UCD}${_DBG}_${LIB}
wxmsw${_UNV}27${_UCD}${_DBG}_${LIB} wxmsw${_UNV}27${_UCD}${_DBG}_${LIB}
...@@ -428,6 +442,9 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -428,6 +442,9 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
D:/ D:/
$ENV{ProgramFiles} $ENV{ProgramFiles}
PATH_SUFFIXES PATH_SUFFIXES
wxWidgets-3.1.0
wxWidgets-3.0.0
wxWidgets-2.9.5
wxWidgets-2.9.4 wxWidgets-2.9.4
wxWidgets-2.9.3 wxWidgets-2.9.3
wxWidgets-2.9.2 wxWidgets-2.9.2
...@@ -463,6 +480,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -463,6 +480,8 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
# If wxWidgets_ROOT_DIR changed, clear lib dir. # If wxWidgets_ROOT_DIR changed, clear lib dir.
IF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR) IF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR)
DBG_MSG( "WX_ROOT_DIR != wxWidgets_ROOT_DIR" )
SET(WX_ROOT_DIR ${wxWidgets_ROOT_DIR} SET(WX_ROOT_DIR ${wxWidgets_ROOT_DIR}
CACHE INTERNAL "wxWidgets_ROOT_DIR") CACHE INTERNAL "wxWidgets_ROOT_DIR")
SET(wxWidgets_LIB_DIR "wxWidgets_LIB_DIR-NOTFOUND" SET(wxWidgets_LIB_DIR "wxWidgets_LIB_DIR-NOTFOUND"
...@@ -470,15 +489,19 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -470,15 +489,19 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
ENDIF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR) ENDIF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR)
IF(WX_ROOT_DIR) IF(WX_ROOT_DIR)
DBG_MSG( "WX_ROOT_DIR == wxWidgets_ROOT_DIR" )
# Select one default tree inside the already determined wx tree. # Select one default tree inside the already determined wx tree.
# Prefer static/shared order usually consistent with build # Prefer static/shared order usually consistent with build
# settings. # settings.
IF(MINGW) IF(MINGW)
DBG_MSG( "MINGW" )
SET(WX_LIB_DIR_PREFIX gcc) SET(WX_LIB_DIR_PREFIX gcc)
ELSE(MINGW) ELSE(MINGW)
SET(WX_LIB_DIR_PREFIX vc) SET(WX_LIB_DIR_PREFIX vc)
ENDIF(MINGW) ENDIF(MINGW)
IF(BUILD_SHARED_LIBS) IF(BUILD_SHARED_LIBS)
DBG_MSG( "BUILD_SHARED_LIBS" )
FIND_PATH(wxWidgets_LIB_DIR FIND_PATH(wxWidgets_LIB_DIR
NAMES NAMES
msw/wx/setup.h msw/wx/setup.h
...@@ -496,6 +519,7 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -496,6 +519,7 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
ELSE(BUILD_SHARED_LIBS) ELSE(BUILD_SHARED_LIBS)
DBG_MSG( "!BUILD_SHARED_LIBS WX_LIB_DIR:${WX_LIB_DIR}" )
FIND_PATH(wxWidgets_LIB_DIR FIND_PATH(wxWidgets_LIB_DIR
NAMES NAMES
msw/wx/setup.h msw/wx/setup.h
...@@ -613,7 +637,11 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32") ...@@ -613,7 +637,11 @@ IF(wxWidgets_FIND_STYLE STREQUAL "win32")
# UNIX_FIND_STYLE # UNIX_FIND_STYLE
#===================================================================== #=====================================================================
ELSE(wxWidgets_FIND_STYLE STREQUAL "win32") ELSE(wxWidgets_FIND_STYLE STREQUAL "win32")
DBG_MSG("NOT win32 path")
IF(wxWidgets_FIND_STYLE STREQUAL "unix") IF(wxWidgets_FIND_STYLE STREQUAL "unix")
DBG_MSG("unix find style")
#----------------------------------------------------------------- #-----------------------------------------------------------------
# UNIX: Helper MACROS # UNIX: Helper MACROS
#----------------------------------------------------------------- #-----------------------------------------------------------------
......
...@@ -92,7 +92,7 @@ string( REPLACE "unit_test_framework" "test" boost_libs_list "${BOOST_LIBS_BUILT ...@@ -92,7 +92,7 @@ string( REPLACE "unit_test_framework" "test" boost_libs_list "${BOOST_LIBS_BUILT
# Default Toolset # Default Toolset
set( BOOST_TOOLSET "toolset=gcc" ) set( BOOST_TOOLSET "toolset=gcc" )
if( KICAD_BUILD_STATIC ) if( KICAD_BUILD_STATIC OR APPLE )
set( BOOST_LINKTYPE "link=static" ) set( BOOST_LINKTYPE "link=static" )
else() else()
unset( BOOST_LINKTYPE ) unset( BOOST_LINKTYPE )
...@@ -170,10 +170,20 @@ endif() ...@@ -170,10 +170,20 @@ endif()
ExternalProject_Add( boost ExternalProject_Add( boost
PREFIX "${PREFIX}" PREFIX "${PREFIX}"
DOWNLOAD_DIR "${DOWNLOAD_DIR}"
INSTALL_DIR "${BOOST_ROOT}"
URL http://downloads.sourceforge.net/project/boost/boost/${BOOST_RELEASE}/boost_${BOOST_VERS}.tar.bz2 URL http://downloads.sourceforge.net/project/boost/boost/${BOOST_RELEASE}/boost_${BOOST_VERS}.tar.bz2
DOWNLOAD_DIR "${DOWNLOAD_DIR}"
TIMEOUT 600 # 10 minutes
URL_MD5 ${BOOST_MD5} URL_MD5 ${BOOST_MD5}
# If download fails, then enable "LOG_DOWNLOAD ON" and try again.
# Upon a second failure with logging enabled, then look at these logs:
# <src>/.downloads-by-cmake$ less /tmp/product/.downloads-by-cmake/boost_1_54_0/src/boost-stamp/boost-download-out.log
# <src>/.downloads-by-cmake$ less /tmp/product/.downloads-by-cmake/boost_1_54_0/src/boost-stamp/boost-download-err.log
# If out.log does not show 100%, then try increasing TIMEOUT even more, or download the URL manually and put it
# into <src>/.downloads-by-cmake/ dir.
# LOG_DOWNLOAD ON
INSTALL_DIR "${BOOST_ROOT}"
# The patch command executes with the working directory set to <SOURCE_DIR> # The patch command executes with the working directory set to <SOURCE_DIR>
# Revert the branch to pristine before applying patch sets as bzr patch # Revert the branch to pristine before applying patch sets as bzr patch
......
...@@ -37,11 +37,20 @@ find_package( BZip2 REQUIRED ) ...@@ -37,11 +37,20 @@ find_package( BZip2 REQUIRED )
set( PREFIX ${DOWNLOAD_DIR}/cairo ) set( PREFIX ${DOWNLOAD_DIR}/cairo )
if ( KICAD_BUILD_STATIC )
set( CAIRO_BUILDTYPE --disable-shared )
endif( KICAD_BUILD_STATIC )
if (APPLE) if (APPLE)
if( CMAKE_OSX_ARCHITECTURES )
set( CAIRO_CFLAGS "CFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES}" ) set( CAIRO_CFLAGS "CFLAGS=" )
set( CAIRO_LDFLAGS "LDFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -framework CoreServices -framework Cocoa" ) set( CAIRO_LDFLAGS "LDFLAGS=-framework CoreServices -framework Cocoa" )
set( CAIRO_OPTS --enable-ft=no ) set( CAIRO_OPTS --enable-ft=no )
if( CMAKE_OSX_ARCHITECTURES )
set( CAIRO_CFLAGS "${CAIRO_CFLAGS} -arch ${CMAKE_OSX_ARCHITECTURES}" )
set( CAIRO_LDFLAGS "${CAIRO_LDFLAGS} -arch ${CMAKE_OSX_ARCHITECTURES}" )
endif( CMAKE_OSX_ARCHITECTURES ) endif( CMAKE_OSX_ARCHITECTURES )
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
...@@ -72,8 +81,9 @@ ExternalProject_Add( cairo ...@@ -72,8 +81,9 @@ ExternalProject_Add( cairo
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
#SOURCE_DIR "${PREFIX}" #SOURCE_DIR "${PREFIX}"
#PATCH_COMMAND "" #PATCH_COMMAND ""
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${CAIRO_ROOT}"
CONFIGURE_COMMAND ./configure --prefix=${CAIRO_ROOT} --enable-static --disable-shared CONFIGURE_COMMAND ./configure --prefix=${CAIRO_ROOT} --enable-static ${CAIRO_BUILDTYPE}
PKG_CONFIG=${PROJECT_SOURCE_DIR}/pkgconfig_root/bin/pkg-config PKG_CONFIG=${PROJECT_SOURCE_DIR}/pkgconfig_root/bin/pkg-config
PKG_CONFIG_PATH=${PROJECT_SOURCE_DIR}/pixman_root/lib/pkgconfig:${PROJECT_SOURCE_DIR}/libpng_root/lib/pkgconfig PKG_CONFIG_PATH=${PROJECT_SOURCE_DIR}/pixman_root/lib/pkgconfig:${PROJECT_SOURCE_DIR}/libpng_root/lib/pkgconfig
--enable-png=yes --enable-svg=yes --enable-png=yes --enable-svg=yes
...@@ -84,8 +94,8 @@ ExternalProject_Add( cairo ...@@ -84,8 +94,8 @@ ExternalProject_Add( cairo
#BINARY_DIR "${PREFIX}" #BINARY_DIR "${PREFIX}"
BUILD_COMMAND make BUILD_COMMAND $(MAKE)
INSTALL_DIR "${CAIRO_ROOT}" INSTALL_DIR "${CAIRO_ROOT}"
INSTALL_COMMAND make install INSTALL_COMMAND $(MAKE) install
) )
...@@ -60,13 +60,28 @@ ExternalProject_Add( glew ...@@ -60,13 +60,28 @@ ExternalProject_Add( glew
#SOURCE_DIR "${PREFIX}" #SOURCE_DIR "${PREFIX}"
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${GLEW_ROOT}"
#PATCH_COMMAND "true" #PATCH_COMMAND "true"
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
#BINARY_DIR "${PREFIX}" #BINARY_DIR "${PREFIX}"
BUILD_COMMAND make ${GLEW_CFLAGS} ${GLEW_LDFLAGS} ${GLEW_STRIP} BUILD_COMMAND $(MAKE) ${GLEW_CFLAGS} ${GLEW_LDFLAGS} ${GLEW_STRIP}
INSTALL_DIR "${GLEW_ROOT}" INSTALL_DIR "${GLEW_ROOT}"
INSTALL_COMMAND make GLEW_DEST="${GLEW_ROOT}" install && ranlib "${GLEW_ROOT}/lib/libGLEW.a" INSTALL_COMMAND $(MAKE) GLEW_DEST="${GLEW_ROOT}" install
)
#
# Optional Steps
#
if( APPLE )
# On OSX is needed to run ranlib to make .a indexes for all platforms
ExternalProject_Add_Step( glew glew_osx_ranlib
COMMAND ranlib "${GLEW_ROOT}/lib/libGLEW.a"
COMMENT "ranlib ${GLEW_ROOT}/lib/libGLEW.a - Needed on OSX only"
DEPENDEES install
) )
endif()
...@@ -43,6 +43,12 @@ if (APPLE) ...@@ -43,6 +43,12 @@ if (APPLE)
endif( CMAKE_OSX_ARCHITECTURES ) endif( CMAKE_OSX_ARCHITECTURES )
endif(APPLE) endif(APPLE)
if (KICAD_BUILD_STATIC)
set(LIBPNG_OPTS --enable-static --disable-shared)
else()
set(LIBPNG_OPTS --enable-static --enable-shared)
endif(KICAD_BUILD_STATIC)
# <SOURCE_DIR> = ${PREFIX}/src/glew # <SOURCE_DIR> = ${PREFIX}/src/glew
# There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine # There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine
# download, the patch is applied. This lets you regenerate a new patch at any time # download, the patch is applied. This lets you regenerate a new patch at any time
...@@ -59,11 +65,12 @@ ExternalProject_Add( libpng ...@@ -59,11 +65,12 @@ ExternalProject_Add( libpng
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
#PATCH_COMMAND "true" #PATCH_COMMAND "true"
CONFIGURE_COMMAND ./configure --prefix=${LIBPNG_ROOT} --enable-static --disable-shared ${LIBPNG_CFLAGS} --disable-dependency-tracking CONFIGURE_COMMAND ./configure --prefix=${LIBPNG_ROOT} ${LIBPNG_OPTS} ${LIBPNG_CFLAGS} --disable-dependency-tracking
#BINARY_DIR "${PREFIX}" #BINARY_DIR "${PREFIX}"
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${LIBPNG_ROOT}"
BUILD_COMMAND make BUILD_COMMAND $(MAKE)
INSTALL_DIR "${LIBPNG_ROOT}" INSTALL_DIR "${LIBPNG_ROOT}"
INSTALL_COMMAND make install INSTALL_COMMAND $(MAKE) install
) )
...@@ -37,14 +37,22 @@ find_package( BZip2 REQUIRED ) ...@@ -37,14 +37,22 @@ find_package( BZip2 REQUIRED )
set( PREFIX ${DOWNLOAD_DIR}/pixman ) set( PREFIX ${DOWNLOAD_DIR}/pixman )
set(PIXMAN_CPPFLAGS "CFLAGS=")
if (APPLE) if (APPLE)
if( CMAKE_OSX_ARCHITECTURES ) if( CMAKE_OSX_ARCHITECTURES )
set(PIXMAN_CPPFLAGS "CFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -fno-common -mmacosx-version-min=10.5") set(PIXMAN_CPPFLAGS "${PIXMAN_CPPFLAGS} -arch ${CMAKE_OSX_ARCHITECTURES} -fno-common -mmacosx-version-min=10.5")
else() else()
set(PIXMAN_CPPFLAGS "CFLAGS=-fno-common -mmacosx-version-min=10.5") set(PIXMAN_CPPFLAGS "${PIXMAN_CPPFLAGS} -fno-common -mmacosx-version-min=10.5")
endif( CMAKE_OSX_ARCHITECTURES ) endif( CMAKE_OSX_ARCHITECTURES )
endif(APPLE) endif(APPLE)
if (KICAD_BUILD_STATIC)
set(PIXMAN_OPTS --enable-static=yes --enable-shared=no)
else()
set(PIXMAN_OPTS --enable-static=yes --enable-shared=yes)
endif(KICAD_BUILD_STATIC)
# <SOURCE_DIR> = ${PREFIX}/src/glew # <SOURCE_DIR> = ${PREFIX}/src/glew
# There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine # There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine
# download, the patch is applied. This lets you regenerate a new patch at any time # download, the patch is applied. This lets you regenerate a new patch at any time
...@@ -60,12 +68,14 @@ ExternalProject_Add( pixman ...@@ -60,12 +68,14 @@ ExternalProject_Add( pixman
#SOURCE_DIR "${PREFIX}" #SOURCE_DIR "${PREFIX}"
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${PIXMAN_ROOT}"
#PATCH_COMMAND "true" #PATCH_COMMAND "true"
CONFIGURE_COMMAND ./configure --prefix=${PIXMAN_ROOT} --enable-static=yes --enable-shared=no ${PIXMAN_CPPFLAGS} --disable-dependency-tracking CONFIGURE_COMMAND ./configure --prefix=${PIXMAN_ROOT} ${PIXMAN_OPTS} ${PIXMAN_CPPFLAGS} --disable-dependency-tracking
#BINARY_DIR "${PREFIX}" #BINARY_DIR "${PREFIX}"
BUILD_COMMAND make BUILD_COMMAND $(MAKE)
INSTALL_DIR "${PIXMAN_ROOT}" INSTALL_DIR "${PIXMAN_ROOT}"
INSTALL_COMMAND make install INSTALL_COMMAND $(MAKE) install
) )
...@@ -37,6 +37,12 @@ find_package( BZip2 REQUIRED ) ...@@ -37,6 +37,12 @@ find_package( BZip2 REQUIRED )
set( PREFIX ${DOWNLOAD_DIR}/pkgconfig ) set( PREFIX ${DOWNLOAD_DIR}/pkgconfig )
if ( KICAD_BUILD_STATIC )
set( PKGCONFIG_BUILDTYPE --enable-shared=no --enable-static=yes )
else()
set( PKGCONFIG_BUILDTYPE --enable-shared=yes --enable-static=yes )
endif( KICAD_BUILD_STATIC )
# <SOURCE_DIR> = ${PREFIX}/src/glew # <SOURCE_DIR> = ${PREFIX}/src/glew
# There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine # There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine
# download, the patch is applied. This lets you regenerate a new patch at any time # download, the patch is applied. This lets you regenerate a new patch at any time
...@@ -53,11 +59,20 @@ ExternalProject_Add( pkgconfig ...@@ -53,11 +59,20 @@ ExternalProject_Add( pkgconfig
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
#PATCH_COMMAND "true" #PATCH_COMMAND "true"
CONFIGURE_COMMAND ./configure --prefix=${PKGCONFIG_ROOT} --with-internal-glib --enable-shared=no --enable-static=yes --disable-silent-rules CONFIGURE_COMMAND ./configure --prefix=${PKGCONFIG_ROOT} --with-internal-glib ${PKGCONFIG_BUILDTYPE} --disable-silent-rules
#BINARY_DIR "${PREFIX}" #BINARY_DIR "${PREFIX}"
BUILD_COMMAND make UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${PKGCONFIG_ROOT}"
BUILD_COMMAND $(MAKE)
INSTALL_DIR "${PKGCONFIG_ROOT}" INSTALL_DIR "${PKGCONFIG_ROOT}"
INSTALL_COMMAND make install INSTALL_COMMAND $(MAKE) install
) )
ExternalProject_Add_Step( pkgconfig pkgconfig_cleanup
COMMAND ${CMAKE_COMMAND} -E remove_directory "${PKGCONFIG_ROOT}"
COMMENT "pkgconfig - cleanup destination before proceeding in install"
DEPENDEES build
)
# This program source code file is part of KICAD, a free EDA CAD application.
#
# Copyright (C) 2013 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
# Copyright (C) 2013 Kicad Developers, see AUTHORS.txt for contributors.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, you may find one here:
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# or you may search the http://www.gnu.org website for the version 2 license,
# or you may write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
# Downloads and builds LIBWX
#-----<configure>----------------------------------------------------------------
set( LIBWX_RELEASE 3.0.0 )
set( LIBWX_MD5 241998efc12205172ed24c18788ea2cd ) # re-calc this on every RELEASE change
# The boost headers [and static libs if built] go here, at the top of KiCad
# source tree in boost_root.
set( LIBWX_ROOT "${PROJECT_SOURCE_DIR}/libwx_root" )
#-----</configure>---------------------------------------------------------------
find_package( BZip2 REQUIRED )
set( PREFIX ${DOWNLOAD_DIR}/libwx )
if (APPLE)
if( CMAKE_OSX_ARCHITECTURES )
STRING(REGEX REPLACE " -arch " "," LIBWX_ARCHITECTURES ${CMAKE_OSX_ARCHITECTURES})
SET( LIBWX_ARCHITECTURES --enable-universal_binary=${LIBWX_ARCHITECTURES})
endif( CMAKE_OSX_ARCHITECTURES )
endif(APPLE)
if ( KICAD_BUILD_STATIC )
set( LIBWX_BUILDTYPE "--disable-shared" )
endif( KICAD_BUILD_STATIC )
# <SOURCE_DIR> = ${PREFIX}/src/libwx
# There is a Bazaar 'boost scratch repo' in <SOURCE_DIR>/boost and after committing pristine
# download, the patch is applied. This lets you regenerate a new patch at any time
# easily, simply by editing the working tree in <SOURCE_DIR> and doing "bzr diff" in there.
ExternalProject_Add( libwx
PREFIX "${PREFIX}"
DOWNLOAD_DIR "${DOWNLOAD_DIR}"
URL http://downloads.sourceforge.net/project/wxwindows/${LIBWX_RELEASE}/wxWidgets-${LIBWX_RELEASE}.tar.bz2
URL_MD5 ${LIBWX_MD5}
STAMP_DIR "${PREFIX}"
BUILD_IN_SOURCE 1
PATCH_COMMAND bzr revert
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/wxwidgets-3.0.0_macosx.patch"
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/wxwidgets-3.0.0_macosx_bug_15908.patch"
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${LIBWX_ROOT}"
CONFIGURE_COMMAND ./configure --prefix=${LIBWX_ROOT} -with-opengl --enable-aui --enable-debug_info -with-expat=builtin --with-regex=builtin --enable-utf8 ${LIBWX_ARCHITECTURES} ${LIBWX_BUILDTYPE}
#BINARY_DIR "${PREFIX}"
BUILD_COMMAND $(MAKE) VERBOSE=1
INSTALL_DIR "${LIBWX_ROOT}"
INSTALL_COMMAND make install
)
#SET directories
set(wxWidgets_BIN_DIR ${LIBWX_ROOT}/bin)
set(wxWidgets_CONFIG_EXECUTABLE ${LIBWX_ROOT}/bin/wx-config)
set(wxWidgets_INCLUDE_DIRS ${LIBWX_ROOT}/include)
set(wxWidgets_LIBRARY_DIRS ${LIBWX_ROOT}/lib)
ExternalProject_Add_Step( libwx bzr_commit_libwx
COMMAND bzr ci -q -m pristine <SOURCE_DIR>
COMMENT "committing pristine libwx files to 'libwx scratch repo'"
DEPENDERS patch
)
ExternalProject_Add_Step( libwx bzr_add_libwx
COMMAND bzr add -q ${PREFIX}/src/libwx
COMMENT "adding pristine libwx files to 'libwx scratch repo'"
DEPENDERS bzr_commit_libwx
)
ExternalProject_Add_Step( libwx bzr_init_libwx
COMMAND bzr init -q <SOURCE_DIR>
COMMENT "creating 'libwx scratch repo' specifically for libwx to track libwx patches"
DEPENDERS bzr_add_libwx
DEPENDEES download
)
######
# Now is time to search what we have built
######
ExternalProject_Add_Step( libwx libwx_recursive_message
COMMAND cmake .
COMMENT "*** RERUN CMAKE - wxWidgets built, now reissue a cmake to build Kicad"
DEPENDEES install
)
...@@ -281,8 +281,8 @@ void BM2CMP_FRAME::Binarize( double aThreshold ) ...@@ -281,8 +281,8 @@ void BM2CMP_FRAME::Binarize( double aThreshold )
int w = m_Greyscale_Image.GetWidth(); int w = m_Greyscale_Image.GetWidth();
unsigned int threshold = (int)(aThreshold * 256); unsigned int threshold = (int)(aThreshold * 256);
for( int y = 1; y < h; y++ ) for( int y = 0; y < h; y++ )
for( int x = 1; x < w; x++ ) for( int x = 0; x < w; x++ )
{ {
pixin = m_Greyscale_Image.GetGreen( x, y ); pixin = m_Greyscale_Image.GetGreen( x, y );
...@@ -303,8 +303,8 @@ void BM2CMP_FRAME::NegateGreyscaleImage( ) ...@@ -303,8 +303,8 @@ void BM2CMP_FRAME::NegateGreyscaleImage( )
int h = m_Greyscale_Image.GetHeight(); int h = m_Greyscale_Image.GetHeight();
int w = m_Greyscale_Image.GetWidth(); int w = m_Greyscale_Image.GetWidth();
for( int y = 1; y < h; y++ ) for( int y = 0; y < h; y++ )
for( int x = 1; x < w; x++ ) for( int x = 0; x < w; x++ )
{ {
pix = m_Greyscale_Image.GetGreen( x, y ); pix = m_Greyscale_Image.GetGreen( x, y );
pix = ~pix; pix = ~pix;
...@@ -512,7 +512,7 @@ void BM2CMP_FRAME::ExportFile( FILE* aOutfile, int aFormat ) ...@@ -512,7 +512,7 @@ void BM2CMP_FRAME::ExportFile( FILE* aOutfile, int aFormat )
} }
/* fill the bitmap with data */ /* fill the bitmap with data */
for( int y = 0; y<h; y++ ) for( int y = 0; y < h; y++ )
{ {
for( int x = 0; x<w; x++ ) for( int x = 0; x<w; x++ )
{ {
......
#!/bin/bash
#
# make icons using Inkscape
# create output directories
cd ../resources/linux/mime/icons/hicolor
rm -r *
mkdir scalable
echo -e '\E[0;34m'"Directory \"scalable\" for .svg icons was created."
# copy sources to the scalable dir
cd ../../../../../bitmaps_png/sources
cp icon_kicad.svg ../../resources/linux/mime/icons/hicolor/scalable/kicad.svg
cp icon_pcbnew.svg ../../resources/linux/mime/icons/hicolor/scalable/pcbnew.svg
cp icon_eeschema.svg ../../resources/linux/mime/icons/hicolor/scalable/eeschema.svg
echo -e '\E[0;34m'"Sources of icons was copied."
# convert .svg files into .png files
cd ../../resources/linux/mime/icons/hicolor/scalable
SIZES="16x16
22x22
24x24
32x32
48x48"
for size in $SIZES
do
sz=${size%x*}
echo -e '\E[0;32m'"\nMaking the mimetypes icons with size $size."
mkdir ../$size
echo -e '\E[0;34m'"Directory $size was created."
mkdir ../$size/mimetypes
echo -e '\E[0;34m'"Subdirectory \"mimetypes\" was created."
tput sgr0
inkscape -f kicad.svg -e ../$size/mimetypes/application-x-kicad-project.png -w $sz -h $sz --export-area-snap
inkscape -f eeschema.svg -e ../$size/mimetypes/application-x-kicad-eeschema.png -w $sz -h $sz --export-area-snap
inkscape -f pcbnew.svg -e ../$size/mimetypes/application-x-kicad-pcbnew.png -w $sz -h $sz --export-area-snap
echo -e '\E[0;34m'"Icons with size $size was created."
if [ $sz -eq 48 ]
then
echo -e '\E[0;32m'"\nMaking the applications icons with size $size."
mkdir ../$size/apps
echo -e '\E[0;34m'"Subdirectory \"apps\" was created."
tput sgr0
inkscape -f kicad.svg -e ../$size/apps/kicad.png -w $sz -h $sz --export-area-snap
inkscape -f eeschema.svg -e ../$size/apps/eeschema.png -w $sz -h $sz --export-area-snap
inkscape -f pcbnew.svg -e ../$size/apps/pcbnew.png -w $sz -h $sz --export-area-snap
echo -e '\E[0;34m'"Icons with size $size was created."
tput sgr0
fi
done
...@@ -377,3 +377,18 @@ wxString& operator <<( wxString& aString, const wxPoint& aPos ) ...@@ -377,3 +377,18 @@ wxString& operator <<( wxString& aString, const wxPoint& aPos )
return aString; return aString;
} }
/**
* Function AngleToStringDegrees
* is a helper to convert the \a double \a aAngle (in internal unit)
* to a string in degrees
*/
wxString AngleToStringDegrees( double aAngle )
{
wxString text;
text.Printf( wxT( "%.3f" ), aAngle/10.0 );
StripTrailingZeros( text, 1 );
return text;
}
...@@ -51,13 +51,13 @@ ...@@ -51,13 +51,13 @@
#define DEFAULT_AUTO_SAVE_INTERVAL 600 #define DEFAULT_AUTO_SAVE_INTERVAL 600
const wxChar* traceAutoSave = wxT( "KicadAutoSave" ); const wxChar traceAutoSave[] = wxT( "KicadAutoSave" );
/// Configuration file entry name for auto save interval. /// Configuration file entry name for auto save interval.
static const wxChar* entryAutoSaveInterval = wxT( "AutoSaveInterval" ); static const wxChar entryAutoSaveInterval[] = wxT( "AutoSaveInterval" );
/// Configuration file entry for wxAuiManger perspective. /// Configuration file entry for wxAuiManger perspective.
static const wxChar* entryPerspective = wxT( "Perspective" ); static const wxChar entryPerspective[] = wxT( "Perspective" );
...@@ -141,6 +141,19 @@ bool EDA_BASE_FRAME::ProcessEvent( wxEvent& aEvent ) ...@@ -141,6 +141,19 @@ bool EDA_BASE_FRAME::ProcessEvent( wxEvent& aEvent )
} }
bool EDA_BASE_FRAME::Show( bool show )
{
if( !show ) // closing
{
SaveSettings(); // virtual, wxFrame specific
}
int ret = wxFrame::Show( show );
return ret;
}
void EDA_BASE_FRAME::onAutoSaveTimer( wxTimerEvent& aEvent ) void EDA_BASE_FRAME::onAutoSaveTimer( wxTimerEvent& aEvent )
{ {
if( !doAutoSave() ) if( !doAutoSave() )
...@@ -231,7 +244,7 @@ void EDA_BASE_FRAME::SaveSettings() ...@@ -231,7 +244,7 @@ void EDA_BASE_FRAME::SaveSettings()
wxString text; wxString text;
wxConfig* config = wxGetApp().GetSettings(); wxConfig* config = wxGetApp().GetSettings();
if( ( config == NULL ) || IsIconized() ) if( !config || IsIconized() )
return; return;
m_FrameSize = GetSize(); m_FrameSize = GetSize();
...@@ -258,10 +271,15 @@ void EDA_BASE_FRAME::SaveSettings() ...@@ -258,10 +271,15 @@ void EDA_BASE_FRAME::SaveSettings()
config->Write( text, m_autoSaveInterval ); config->Write( text, m_autoSaveInterval );
} }
// Once this is fully implemented, wxAuiManager will be used to maintain the persistance of // Once this is fully implemented, wxAuiManager will be used to maintain
// the main frame and all it's managed windows and all of the legacy frame persistence // the persistance of the main frame and all it's managed windows and
// position code can be removed. // all of the legacy frame persistence position code can be removed.
config->Write( m_FrameName + entryPerspective, m_auimgr.SavePerspective() ); wxString perspective = m_auimgr.SavePerspective();
// printf( "perspective(%s): %s\n",
// TO_UTF8( m_FrameName + entryPerspective ), TO_UTF8( perspective ) );
config->Write( m_FrameName + entryPerspective, perspective );
} }
...@@ -270,6 +288,7 @@ void EDA_BASE_FRAME::PrintMsg( const wxString& text ) ...@@ -270,6 +288,7 @@ void EDA_BASE_FRAME::PrintMsg( const wxString& text )
SetStatusText( text ); SetStatusText( text );
} }
void EDA_BASE_FRAME::UpdateFileHistory( const wxString& FullFileName, void EDA_BASE_FRAME::UpdateFileHistory( const wxString& FullFileName,
wxFileHistory * aFileHistory ) wxFileHistory * aFileHistory )
{ {
...@@ -283,7 +302,7 @@ void EDA_BASE_FRAME::UpdateFileHistory( const wxString& FullFileName, ...@@ -283,7 +302,7 @@ void EDA_BASE_FRAME::UpdateFileHistory( const wxString& FullFileName,
wxString EDA_BASE_FRAME::GetFileFromHistory( int cmdId, const wxString& type, wxString EDA_BASE_FRAME::GetFileFromHistory( int cmdId, const wxString& type,
wxFileHistory * aFileHistory ) wxFileHistory* aFileHistory )
{ {
wxString fn, msg; wxString fn, msg;
size_t i; size_t i;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#endif #endif
#ifndef KICAD_BUILD_VERSION #ifndef KICAD_BUILD_VERSION
# define KICAD_BUILD_VERSION "(2013-jul-14)" # define KICAD_BUILD_VERSION "(2014-jan-25)"
#endif #endif
/** /**
......
...@@ -203,7 +203,7 @@ static void InitKiCadAboutNew( AboutAppInfo& info ) ...@@ -203,7 +203,7 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
* which should be represented by the same icon. * which should be represented by the same icon.
*/ */
// The developers // The core developers
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Jean-Pierre Charras" ), wxT( "jp.charras@wanadoo.fr" ) ) ); new Contributor( wxT( "Jean-Pierre Charras" ), wxT( "jp.charras@wanadoo.fr" ) ) );
info.AddDeveloper( info.AddDeveloper(
...@@ -214,6 +214,8 @@ static void InitKiCadAboutNew( AboutAppInfo& info ) ...@@ -214,6 +214,8 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
// alphabetically by last name after main 3 above: // alphabetically by last name after main 3 above:
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Frank Bennett" ), wxT( "bennett78@lpbroadband.net" ) ) ); new Contributor( wxT( "Frank Bennett" ), wxT( "bennett78@lpbroadband.net" ) ) );
info.AddDeveloper(
new Contributor( wxT( "Cirilo Bernardo" ), wxT( "cirilo_bernardo@yahoo.com" ) ) );
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Jonas Diemer" ), wxT( "diemer@gmx.de" ) ) ); new Contributor( wxT( "Jonas Diemer" ), wxT( "diemer@gmx.de" ) ) );
info.AddDeveloper( info.AddDeveloper(
...@@ -222,12 +224,6 @@ static void InitKiCadAboutNew( AboutAppInfo& info ) ...@@ -222,12 +224,6 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
new Contributor( wxT( "Hauptmech" ), wxT( "hauptmech@gmail.com" ) ) ); new Contributor( wxT( "Hauptmech" ), wxT( "hauptmech@gmail.com" ) ) );
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Jerry Jacobs" ), wxT( "xor.gate.engineering@gmail.com" ) ) ); new Contributor( wxT( "Jerry Jacobs" ), wxT( "xor.gate.engineering@gmail.com" ) ) );
/*
info.AddDeveloper(
new Contributor( wxT( "KBool Library" ), wxT( "http://boolean.klaasholwerda.nl/bool.html" ) ) );
*/
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Lorenzo Marcantonio" ), wxT( "lomarcan@tin.it" ) ) ); new Contributor( wxT( "Lorenzo Marcantonio" ), wxT( "lomarcan@tin.it" ) ) );
info.AddDeveloper( info.AddDeveloper(
...@@ -240,10 +236,14 @@ static void InitKiCadAboutNew( AboutAppInfo& info ) ...@@ -240,10 +236,14 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
new Contributor( wxT( "Marco Serantoni" ), wxT( "marco.serantoni@gmail.com" ) ) ); new Contributor( wxT( "Marco Serantoni" ), wxT( "marco.serantoni@gmail.com" ) ) );
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Brian Sidebotham" ), wxT( "brian.sidebotham@gmail.com" ) ) ); new Contributor( wxT( "Brian Sidebotham" ), wxT( "brian.sidebotham@gmail.com" ) ) );
info.AddDeveloper(
new Contributor( wxT( "Orson (Maciej Suminski)" ), wxT( "maciej.suminski@cern.ch" ) ) );
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Rafael Sokolowski" ), wxT( "rafael.sokolowski@web.de" ) ) ); new Contributor( wxT( "Rafael Sokolowski" ), wxT( "rafael.sokolowski@web.de" ) ) );
info.AddDeveloper( info.AddDeveloper(
new Contributor( wxT( "Vesa Solonen" ), wxT( "vesa.solonen@hut.fi" ) ) ); new Contributor( wxT( "Vesa Solonen" ), wxT( "vesa.solonen@hut.fi" ) ) );
info.AddDeveloper(
new Contributor( wxT( "Tomasz Wlostowski" ), wxT( "tomasz.wlostowski@cern.ch" ) ) );
// The document writers // The document writers
info.AddDocWriter( info.AddDocWriter(
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Nov 6 2013)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -343,7 +343,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind ...@@ -343,7 +343,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
wxBoxSizer* bSizerFilename; wxBoxSizer* bSizerFilename;
bSizerFilename = new wxBoxSizer( wxVERTICAL ); bSizerFilename = new wxBoxSizer( wxVERTICAL );
m_staticTextfilename = new wxStaticText( this, wxID_ANY, _("Page layout file description"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextfilename = new wxStaticText( this, wxID_ANY, _("Page layout description file"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextfilename->Wrap( -1 ); m_staticTextfilename->Wrap( -1 );
bSizerFilename->Add( m_staticTextfilename, 0, wxRIGHT|wxLEFT, 5 ); bSizerFilename->Add( m_staticTextfilename, 0, wxRIGHT|wxLEFT, 5 );
......
...@@ -20,8 +20,10 @@ ...@@ -20,8 +20,10 @@
<property name="path">.</property> <property name="path">.</property>
<property name="precompiled_header"></property> <property name="precompiled_header"></property>
<property name="relative_path">1</property> <property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<property name="skip_php_events">1</property> <property name="skip_php_events">1</property>
<property name="skip_python_events">1</property> <property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">0</property> <property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property> <property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1"> <object class="Dialog" expanded="1">
...@@ -4173,7 +4175,7 @@ ...@@ -4173,7 +4175,7 @@
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="label">Page layout file description</property> <property name="label">Page layout description file</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Nov 6 2013)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
......
...@@ -118,6 +118,8 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* aParent, ...@@ -118,6 +118,8 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* aParent,
m_snapToGrid = true; m_snapToGrid = true;
m_MsgFrameHeight = EDA_MSG_PANEL::GetRequiredHeight(); m_MsgFrameHeight = EDA_MSG_PANEL::GetRequiredHeight();
m_auimgr.SetFlags(wxAUI_MGR_DEFAULT|wxAUI_MGR_LIVE_RESIZE);
CreateStatusBar( 6 ); CreateStatusBar( 6 );
// set the size of the status bar subwindows: // set the size of the status bar subwindows:
......
...@@ -57,11 +57,6 @@ ...@@ -57,11 +57,6 @@
static const wxChar* CommonConfigPath = wxT( "kicad_common" ); static const wxChar* CommonConfigPath = wxT( "kicad_common" );
#ifdef __UNIX__
# define TMP_FILE "/tmp/kicad.tmp"
#endif
// some key strings used to store parameters in config // some key strings used to store parameters in config
static const wxChar backgroundColorKey[] = wxT( "BackgroundColor" ); static const wxChar backgroundColorKey[] = wxT( "BackgroundColor" );
static const wxChar showPageLimitsKey[] = wxT( "ShowPageLimits" ); static const wxChar showPageLimitsKey[] = wxT( "ShowPageLimits" );
...@@ -90,7 +85,7 @@ struct LANGUAGE_DESCR ...@@ -90,7 +85,7 @@ struct LANGUAGE_DESCR
BITMAP_DEF m_Lang_Icon; BITMAP_DEF m_Lang_Icon;
/// Labels used in menus /// Labels used in menus
const wxChar* m_Lang_Label; wxString m_Lang_Label;
/// Set to true if the m_Lang_Label must not be translated /// Set to true if the m_Lang_Label must not be translated
bool m_DoNotTranslate; bool m_DoNotTranslate;
...@@ -274,7 +269,7 @@ EDA_APP::EDA_APP() ...@@ -274,7 +269,7 @@ EDA_APP::EDA_APP()
m_oneInstancePerFileChecker = NULL; m_oneInstancePerFileChecker = NULL;
m_HtmlCtrl = NULL; m_HtmlCtrl = NULL;
m_settings = NULL; m_settings = NULL;
m_LanguageId = wxLANGUAGE_DEFAULT; setLanguageId( wxLANGUAGE_DEFAULT );
m_Locale = NULL; m_Locale = NULL;
m_projectSettings = NULL; m_projectSettings = NULL;
m_commonSettings = NULL; m_commonSettings = NULL;
...@@ -350,14 +345,15 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId ) ...@@ -350,14 +345,15 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId )
// Internationalization: loading the kicad suitable Dictionary // Internationalization: loading the kicad suitable Dictionary
wxString languageSel; wxString languageSel;
m_commonSettings->Read( languageCfgKey, &languageSel); m_commonSettings->Read( languageCfgKey, &languageSel);
m_LanguageId = wxLANGUAGE_DEFAULT;
setLanguageId( wxLANGUAGE_DEFAULT );
// Search for the current selection // Search for the current selection
for( unsigned ii = 0; ii < DIM( s_Languages ); ii++ ) for( unsigned ii = 0; ii < DIM( s_Languages ); ii++ )
{ {
if( s_Languages[ii].m_Lang_Label == languageSel ) if( s_Languages[ii].m_Lang_Label == languageSel )
{ {
m_LanguageId = s_Languages[ii].m_WX_Lang_Identifier; setLanguageId( s_Languages[ii].m_WX_Lang_Identifier );
break; break;
} }
} }
...@@ -625,14 +621,14 @@ void EDA_APP::GetSettings( bool aReopenLastUsedDirectory ) ...@@ -625,14 +621,14 @@ void EDA_APP::GetSettings( bool aReopenLastUsedDirectory )
wxString languageSel; wxString languageSel;
m_commonSettings->Read( languageCfgKey, &languageSel ); m_commonSettings->Read( languageCfgKey, &languageSel );
m_LanguageId = wxLANGUAGE_DEFAULT; setLanguageId( wxLANGUAGE_DEFAULT );
// Search for the current selection // Search for the current selection
for( unsigned ii = 0; ii < DIM( s_Languages ); ii++ ) for( unsigned ii = 0; ii < DIM( s_Languages ); ii++ )
{ {
if( s_Languages[ii].m_Lang_Label == languageSel ) if( s_Languages[ii].m_Lang_Label == languageSel )
{ {
m_LanguageId = s_Languages[ii].m_WX_Lang_Identifier; setLanguageId( s_Languages[ii].m_WX_Lang_Identifier );
break; break;
} }
} }
...@@ -704,9 +700,7 @@ bool EDA_APP::SetLanguage( bool first_time ) ...@@ -704,9 +700,7 @@ bool EDA_APP::SetLanguage( bool first_time )
// dictionary file name without extend (full name is kicad.mo) // dictionary file name without extend (full name is kicad.mo)
wxString DictionaryName( wxT( "kicad" ) ); wxString DictionaryName( wxT( "kicad" ) );
if( m_Locale )
delete m_Locale; delete m_Locale;
m_Locale = new wxLocale; m_Locale = new wxLocale;
#if wxCHECK_VERSION( 2, 9, 0 ) #if wxCHECK_VERSION( 2, 9, 0 )
...@@ -717,7 +711,7 @@ bool EDA_APP::SetLanguage( bool first_time ) ...@@ -717,7 +711,7 @@ bool EDA_APP::SetLanguage( bool first_time )
{ {
wxLogDebug( wxT( "This language is not supported by the system." ) ); wxLogDebug( wxT( "This language is not supported by the system." ) );
m_LanguageId = wxLANGUAGE_DEFAULT; setLanguageId( wxLANGUAGE_DEFAULT );
delete m_Locale; delete m_Locale;
m_Locale = new wxLocale; m_Locale = new wxLocale;
...@@ -786,7 +780,7 @@ void EDA_APP::SetLanguageIdentifier( int menu_id ) ...@@ -786,7 +780,7 @@ void EDA_APP::SetLanguageIdentifier( int menu_id )
{ {
if( menu_id == s_Languages[ii].m_KI_Lang_Identifier ) if( menu_id == s_Languages[ii].m_KI_Lang_Identifier )
{ {
m_LanguageId = s_Languages[ii].m_WX_Lang_Identifier; setLanguageId( s_Languages[ii].m_WX_Lang_Identifier );
break; break;
} }
} }
......
...@@ -205,6 +205,16 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( FP_LIB_TABLE* aTable, const wxString* a ...@@ -205,6 +205,16 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( FP_LIB_TABLE* aTable, const wxString* a
#if USE_WORKER_THREADS #if USE_WORKER_THREADS
// Even though the PLUGIN API implementation is the place for the
// locale toggling, in order to keep LOCAL_IO::C_count at 1 or greater
// for the duration of all helper threads, we increment by one here via instantiation.
// Only done here because of the multi-threaded nature of this code.
// Without this C_count skips in and out of "equal to zero" and causes
// needless locale toggling among the threads, based on which of them
// are in a PLUGIN::FootprintLoad() function. And that is occasionally
// none of them.
LOCALE_IO top_most_nesting;
// Something which will not invoke a thread copy constructor, one of many ways obviously: // Something which will not invoke a thread copy constructor, one of many ways obviously:
typedef boost::ptr_vector< boost::thread > MYTHREADS; typedef boost::ptr_vector< boost::thread > MYTHREADS;
......
...@@ -626,11 +626,15 @@ const FP_LIB_TABLE::ROW* FP_LIB_TABLE::FindRow( const wxString& aNickname ) ...@@ -626,11 +626,15 @@ const FP_LIB_TABLE::ROW* FP_LIB_TABLE::FindRow( const wxString& aNickname )
if( !row ) if( !row )
{ {
wxString msg = wxString::Format( _( "lib table contains no logical lib '%s'" ), wxString msg = wxString::Format(
_( "fp-lib-table files contain no lib with nickname '%s'" ),
GetChars( aNickname ) ); GetChars( aNickname ) );
THROW_IO_ERROR( msg ); THROW_IO_ERROR( msg );
} }
// We've been 'lazy' up until now, but it cannot be deferred any longer,
// instantiate a PLUGIN of the proper kind if it is not already in this ROW.
if( !row->plugin ) if( !row->plugin )
row->setPlugin( IO_MGR::PluginFind( row->type ) ); row->setPlugin( IO_MGR::PluginFind( row->type ) );
......
...@@ -1451,12 +1451,12 @@ EDA_COLOR_T ColorMix( EDA_COLOR_T aColor1, EDA_COLOR_T aColor2 ) ...@@ -1451,12 +1451,12 @@ EDA_COLOR_T ColorMix( EDA_COLOR_T aColor1, EDA_COLOR_T aColor2 )
} }
EDA_COLOR_T ColorByName( const wxChar *aName ) EDA_COLOR_T ColorByName( const wxString& aName )
{ {
// look for a match in the palette itself // look for a match in the palette itself
for( EDA_COLOR_T trying = BLACK; trying < NBCOLORS; trying = NextColor(trying) ) for( EDA_COLOR_T trying = BLACK; trying < NBCOLORS; trying = NextColor(trying) )
{ {
if( 0 == wxStricmp( aName, g_ColorRefs[trying].m_Name ) ) if( 0 == aName.CmpNoCase( g_ColorRefs[trying].m_Name ) )
return trying; return trying;
} }
......
...@@ -430,7 +430,7 @@ const wxPoint WORKSHEET_DATAITEM_POLYPOLYGON::GetCornerPositionUi( unsigned aIdx ...@@ -430,7 +430,7 @@ const wxPoint WORKSHEET_DATAITEM_POLYPOLYGON::GetCornerPositionUi( unsigned aIdx
return wxPoint( int(pos.x), int(pos.y) ); return wxPoint( int(pos.x), int(pos.y) );
} }
WORKSHEET_DATAITEM_TEXT::WORKSHEET_DATAITEM_TEXT( const wxChar* aTextBase ) : WORKSHEET_DATAITEM_TEXT::WORKSHEET_DATAITEM_TEXT( const wxString& aTextBase ) :
WORKSHEET_DATAITEM( WS_TEXT ) WORKSHEET_DATAITEM( WS_TEXT )
{ {
m_TextBase = aTextBase; m_TextBase = aTextBase;
......
...@@ -211,31 +211,33 @@ wxString DateAndTime() ...@@ -211,31 +211,33 @@ wxString DateAndTime()
} }
int StrNumCmp( const wxChar* aString1, const wxChar* aString2, int aLength, bool aIgnoreCase ) int StrNumCmp( const wxString& aString1, const wxString& aString2, int aLength, bool aIgnoreCase )
{ {
int i; int i;
int nb1 = 0, nb2 = 0; int nb1 = 0, nb2 = 0;
if( ( aString1 == NULL ) || ( aString2 == NULL ) ) wxString::const_iterator str1 = aString1.begin(), str2 = aString2.begin();
if( ( str1 == aString1.end() ) || ( str2 == aString2.end() ) )
return 0; return 0;
for( i = 0; i < aLength; i++ ) for( i = 0; i < aLength; i++ )
{ {
if( isdigit( *aString1 ) && isdigit( *aString2 ) ) /* digit found */ if( isdigit( *str1 ) && isdigit( *str2 ) ) /* digit found */
{ {
nb1 = 0; nb1 = 0;
nb2 = 0; nb2 = 0;
while( isdigit( *aString1 ) ) while( isdigit( *str1 ) )
{ {
nb1 = nb1 * 10 + *aString1 - '0'; nb1 = nb1 * 10 + (int) *str1 - '0';
aString1++; str1++;
} }
while( isdigit( *aString2 ) ) while( isdigit( *str2 ) )
{ {
nb2 = nb2 * 10 + *aString2 - '0'; nb2 = nb2 * 10 + (int) *str2 - '0';
aString2++; str2++;
} }
if( nb1 < nb2 ) if( nb1 < nb2 )
...@@ -247,29 +249,29 @@ int StrNumCmp( const wxChar* aString1, const wxChar* aString2, int aLength, bool ...@@ -247,29 +249,29 @@ int StrNumCmp( const wxChar* aString1, const wxChar* aString2, int aLength, bool
if( aIgnoreCase ) if( aIgnoreCase )
{ {
if( toupper( *aString1 ) < toupper( *aString2 ) ) if( toupper( *str1 ) < toupper( *str2 ) )
return -1; return -1;
if( toupper( *aString1 ) > toupper( *aString2 ) ) if( toupper( *str1 ) > toupper( *str2 ) )
return 1; return 1;
if( ( *aString1 == 0 ) && ( *aString2 == 0 ) ) if( ( *str1 == 0 ) && ( *str2 == 0 ) )
return 0; return 0;
} }
else else
{ {
if( *aString1 < *aString2 ) if( *str1 < *str2 )
return -1; return -1;
if( *aString1 > *aString2 ) if( *str1 > *str2 )
return 1; return 1;
if( ( *aString1 == 0 ) && ( *aString2 == 0 ) ) if( ( str1 == aString1.end() ) && ( str2 == aString2.end() ) )
return 0; return 0;
} }
aString1++; str1++;
aString2++; str2++;
} }
return 0; return 0;
...@@ -477,18 +479,3 @@ bool ReplaceIllegalFileNameChars( std::string* aName ) ...@@ -477,18 +479,3 @@ bool ReplaceIllegalFileNameChars( std::string* aName )
return changed; return changed;
} }
wxString RemoveTrailingZeros( const wxString& aString )
{
wxString retv = aString;
int i = retv.Length();
while( --i > 0 && retv[i] == wxChar( '0' ) )
retv.RemoveLast();
if( retv[i] == wxChar( '.' ) || retv[i] == wxChar( ',' ) )
retv.RemoveLast();
return retv;
}
...@@ -97,4 +97,5 @@ const wxString PSFileWildcard( _( "PostScript files (.ps)|*.ps" ) ); ...@@ -97,4 +97,5 @@ const wxString PSFileWildcard( _( "PostScript files (.ps)|*.ps" ) );
const wxString ReportFileWildcard = _( "Report files (*.rpt)|*.rpt" ); const wxString ReportFileWildcard = _( "Report files (*.rpt)|*.rpt" );
const wxString FootprintPlaceFileWildcard = _( "Footprint place files (*.pos)|*.pos" ); const wxString FootprintPlaceFileWildcard = _( "Footprint place files (*.pos)|*.pos" );
const wxString Shapes3DFileWildcard( _( "Vrml and x3d files (*.wrl *.x3d)|*.wrl;*.x3d" ) ); const wxString Shapes3DFileWildcard( _( "Vrml and x3d files (*.wrl *.x3d)|*.wrl;*.x3d" ) );
const wxString IDF3DFileWildcard( _( "IDFv3 component files (*.idf)|*.idf" ) );
const wxString TextWildcard( _( "Text files (*.txt)|*.txt" ) ); const wxString TextWildcard( _( "Text files (*.txt)|*.txt" ) );
...@@ -158,7 +158,6 @@ void DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow( wxCloseEvent& event ) ...@@ -158,7 +158,6 @@ void DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow( wxCloseEvent& event )
if( m_Draw3DFrame ) if( m_Draw3DFrame )
m_Draw3DFrame->Close( true ); m_Draw3DFrame->Close( true );
SaveSettings();
Destroy(); Destroy();
} }
......
...@@ -337,7 +337,6 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event ) ...@@ -337,7 +337,6 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
m_DisplayFootprintFrame->Close( true ); m_DisplayFootprintFrame->Close( true );
m_modified = false; m_modified = false;
SaveSettings();
Destroy(); Destroy();
return; return;
} }
...@@ -748,11 +747,11 @@ void CVPCB_MAINFRAME::DisplayStatus() ...@@ -748,11 +747,11 @@ void CVPCB_MAINFRAME::DisplayStatus()
bool CVPCB_MAINFRAME::LoadFootprintFiles() bool CVPCB_MAINFRAME::LoadFootprintFiles()
{ {
// Check if there are footprint libraries in project file. // Check if there are footprint libraries in the footprint library table.
if( m_ModuleLibNames.GetCount() == 0 ) if( m_footprintLibTable == NULL || !m_footprintLibTable->GetLogicalLibs().size() )
{ {
wxMessageBox( _( "No PCB footprint libraries are listed in the current project file." ), wxMessageBox( _( "No PCB footprint libraries are listed in the current footprint "
_( "Project File Error" ), wxOK | wxICON_ERROR ); "library table." ), _( "Configuration Error" ), wxOK | wxICON_ERROR );
return false; return false;
} }
......
This diff is collapsed.
EESchema-LIBRARY Version 2.3 Date: 21/05/2010 09:45:35 EESchema-LIBRARY Version 2.3
#encoding utf-8
# #
# +12C # +12C
# #
DEF +12C #PWR 0 0 N Y 1 F P DEF +12C #PWR 0 0 N Y 1 F P
F0 "#PWR" 0 -30 30 H I C CNN F0 "#PWR" 0 -30 30 H I C CNN
F1 "+12C" 0 110 40 H V C CNN F1 "+12C" 0 110 40 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
X +12C 1 0 0 0 U 30 30 0 0 W N X +12C 1 0 0 0 U 30 30 0 0 W N
C 0 60 20 0 1 0 N C 0 60 20 0 1 0 N
...@@ -17,6 +20,8 @@ ENDDEF ...@@ -17,6 +20,8 @@ ENDDEF
DEF +12V #PWR 0 0 N Y 1 F P DEF +12V #PWR 0 0 N Y 1 F P
F0 "#PWR" 0 -50 20 H I C CNN F0 "#PWR" 0 -50 20 H I C CNN
F1 "+12V" 0 100 30 H V C CNN F1 "+12V" 0 100 30 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
X +12V 1 0 0 0 U 20 30 0 0 W N X +12V 1 0 0 0 U 20 30 0 0 W N
C 0 60 20 0 1 0 N C 0 60 20 0 1 0 N
...@@ -29,6 +34,8 @@ ENDDEF ...@@ -29,6 +34,8 @@ ENDDEF
DEF -VAA #PWR 0 0 Y Y 1 F P DEF -VAA #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 100 20 H I C CNN F0 "#PWR" 0 100 20 H I C CNN
F1 "-VAA" 0 100 30 H V C CNN F1 "-VAA" 0 100 30 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
X -VAA 1 0 0 0 U 20 20 0 0 W N X -VAA 1 0 0 0 U 20 20 0 0 W N
P 3 0 1 0 0 0 0 50 0 50 N P 3 0 1 0 0 0 0 50 0 50 N
...@@ -41,6 +48,8 @@ ENDDEF ...@@ -41,6 +48,8 @@ ENDDEF
DEF 7805 U 0 30 N Y 1 F N DEF 7805 U 0 30 N Y 1 F N
F0 "U" 150 -196 60 H V C CNN F0 "U" 150 -196 60 H V C CNN
F1 "7805" 0 200 60 H V C CNN F1 "7805" 0 200 60 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
ALIAS LM7805 LM7812 78L05 ALIAS LM7805 LM7812 78L05
DRAW DRAW
S -200 -150 200 150 0 1 0 N S -200 -150 200 150 0 1 0 N
...@@ -53,16 +62,18 @@ ENDDEF ...@@ -53,16 +62,18 @@ ENDDEF
# C # C
# #
DEF C C 0 10 N Y 1 F N DEF C C 0 10 N Y 1 F N
F0 "C" 50 100 50 H V L CNN F0 "C" 0 100 40 H V L CNN
F1 "C" 50 -100 50 H V L CNN F1 "C" 6 -85 40 H V L CNN
F2 "" 38 -150 30 H V C CNN
F3 "" 0 100 30 H V C CNN
$FPLIST $FPLIST
SM* SM*
C? C?
C1-1 C1-1
$ENDFPLIST $ENDFPLIST
DRAW DRAW
P 2 0 1 10 -100 -30 100 -30 N P 2 0 1 20 -80 -30 80 -30 N
P 2 0 1 10 -100 30 100 30 N P 2 0 1 20 -80 30 80 30 N
X ~ 1 0 200 170 D 40 40 1 1 P X ~ 1 0 200 170 D 40 40 1 1 P
X ~ 2 0 -200 170 U 40 40 1 1 P X ~ 2 0 -200 170 U 40 40 1 1 P
ENDDRAW ENDDRAW
...@@ -73,6 +84,8 @@ ENDDEF ...@@ -73,6 +84,8 @@ ENDDEF
DEF CONN_2 P 0 40 Y N 1 F N DEF CONN_2 P 0 40 Y N 1 F N
F0 "P" -50 0 40 V V C CNN F0 "P" -50 0 40 V V C CNN
F1 "CONN_2" 50 0 40 V V C CNN F1 "CONN_2" 50 0 40 V V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
S -100 150 100 -150 0 1 0 N S -100 150 100 -150 0 1 0 N
X P1 1 -350 100 250 R 60 60 1 1 P I X P1 1 -350 100 250 R 60 60 1 1 P I
...@@ -83,15 +96,17 @@ ENDDEF ...@@ -83,15 +96,17 @@ ENDDEF
# CP # CP
# #
DEF CP C 0 10 N N 1 F N DEF CP C 0 10 N N 1 F N
F0 "C" 50 100 50 H V L CNN F0 "C" 50 100 40 H V L CNN
F1 "CP" 50 -100 50 H V L CNN F1 "CP" 50 -100 40 H V L CNN
F2 "" 100 -150 30 H V C CNN
F3 "" 50 100 30 H V C CNN
ALIAS CAPAPOL ALIAS CAPAPOL
$FPLIST $FPLIST
CP* CP*
SM* SM*
$ENDFPLIST $ENDFPLIST
DRAW DRAW
P 4 0 1 8 -100 50 -100 -50 100 -50 100 50 N P 4 0 1 8 -80 50 -80 -50 80 -50 80 50 N
P 4 0 1 0 -50 50 -50 -20 50 -20 50 50 F P 4 0 1 0 -50 50 -50 -20 50 -20 50 50 F
X ~ 1 0 200 150 D 40 40 1 1 P X ~ 1 0 200 150 D 40 40 1 1 P
X ~ 2 0 -200 150 U 40 40 1 1 P X ~ 2 0 -200 150 U 40 40 1 1 P
...@@ -103,6 +118,8 @@ ENDDEF ...@@ -103,6 +118,8 @@ ENDDEF
DEF DIODE D 0 40 N N 1 F N DEF DIODE D 0 40 N N 1 F N
F0 "D" 0 100 40 H V C CNN F0 "D" 0 100 40 H V C CNN
F1 "DIODE" 0 -100 40 H V C CNN F1 "DIODE" 0 -100 40 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
$FPLIST $FPLIST
D? D?
S* S*
...@@ -120,6 +137,8 @@ ENDDEF ...@@ -120,6 +137,8 @@ ENDDEF
DEF ~GND #PWR 0 0 Y Y 1 F P DEF ~GND #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 0 30 H I C CNN F0 "#PWR" 0 0 30 H I C CNN
F1 "GND" 0 -70 30 H I C CNN F1 "GND" 0 -70 30 H I C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
X GND 1 0 0 0 U 30 30 1 1 W N X GND 1 0 0 0 U 30 30 1 1 W N
...@@ -131,6 +150,8 @@ ENDDEF ...@@ -131,6 +150,8 @@ ENDDEF
DEF HT #PWR 0 0 Y Y 1 F P DEF HT #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 120 20 H I C CNN F0 "#PWR" 0 120 20 H I C CNN
F1 "HT" 0 90 30 H V C CNN F1 "HT" 0 90 30 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
X HT 1 0 0 0 U 20 20 0 0 W N X HT 1 0 0 0 U 20 20 0 0 W N
P 3 0 1 0 0 0 0 40 0 40 N P 3 0 1 0 0 0 0 40 0 40 N
...@@ -143,6 +164,8 @@ ENDDEF ...@@ -143,6 +164,8 @@ ENDDEF
DEF ICL7660 U 0 40 Y Y 1 F N DEF ICL7660 U 0 40 Y Y 1 F N
F0 "U" 200 400 70 H V L CNN F0 "U" 200 400 70 H V L CNN
F1 "ICL7660" 50 -450 70 H V L CNN F1 "ICL7660" 50 -450 70 H V L CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
S -550 -350 550 350 0 1 0 N S -550 -350 550 350 0 1 0 N
X CAP+ 2 -850 250 300 R 60 60 1 1 I X CAP+ 2 -850 250 300 R 60 60 1 1 I
...@@ -160,7 +183,9 @@ ENDDEF ...@@ -160,7 +183,9 @@ ENDDEF
DEF LM358 U 0 20 Y Y 2 F N DEF LM358 U 0 20 Y Y 2 F N
F0 "U" -50 200 60 H V L CNN F0 "U" -50 200 60 H V L CNN
F1 "LM358" -50 -250 60 H V L CNN F1 "LM358" -50 -250 60 H V L CNN
ALIAS OP275 LMC6062 LMC6082 MC33178 LM358N TL072 TL082 F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
ALIAS LMC6062 LMC6082 LM358N TL072 TL082
DRAW DRAW
P 4 0 1 6 -200 200 200 0 -200 -200 -200 200 f P 4 0 1 6 -200 200 200 0 -200 -200 -200 200 f
X V- 4 -100 -400 250 U 40 40 0 1 W X V- 4 -100 -400 250 U 40 40 0 1 W
...@@ -180,16 +205,17 @@ DEF MPSA42 Q 0 40 Y N 1 F N ...@@ -180,16 +205,17 @@ DEF MPSA42 Q 0 40 Y N 1 F N
F0 "Q" 150 -150 60 H V L CNN F0 "Q" 150 -150 60 H V L CNN
F1 "MPSA42" 150 150 60 H V L CNN F1 "MPSA42" 150 150 60 H V L CNN
F2 "TO92-CBE" 150 0 30 H I C CNN F2 "TO92-CBE" 150 0 30 H I C CNN
F3 "" 0 0 60 H V C CNN
$FPLIST $FPLIST
TO92-CBE TO92-CBE
$ENDFPLIST $ENDFPLIST
DRAW DRAW
C 50 0 111 0 1 10 N C 50 0 111 0 1 10 N
P 2 0 1 0 0 0 100 100 N P 2 0 1 0 0 0 100 100 N
P 3 0 1 10 0 75 0 -75 0 -75 F P 3 0 1 10 0 75 0 -75 0 -75 N
P 3 0 1 0 25 -25 0 0 0 0 N P 3 0 1 0 50 -50 0 0 0 0 N
P 3 0 1 0 100 -100 65 -65 65 -65 N P 3 0 1 0 90 -90 100 -100 100 -100 N
P 5 0 1 0 25 -25 50 -75 75 -50 25 -25 25 -25 F P 5 0 1 0 90 -90 70 -30 30 -70 90 -90 90 -90 F
X B B -200 0 200 R 40 40 1 1 I X B B -200 0 200 R 40 40 1 1 I
X C C 100 200 100 D 40 40 1 1 P X C C 100 200 100 D 40 40 1 1 P
X E E 100 -200 100 U 40 40 1 1 P X E E 100 -200 100 U 40 40 1 1 P
...@@ -202,6 +228,7 @@ DEF MPSA92 Q 0 40 Y N 1 F N ...@@ -202,6 +228,7 @@ DEF MPSA92 Q 0 40 Y N 1 F N
F0 "Q" 150 -150 60 H V L CNN F0 "Q" 150 -150 60 H V L CNN
F1 "MPSA92" 150 150 60 H V L CNN F1 "MPSA92" 150 150 60 H V L CNN
F2 "TO92-CBE" 150 0 30 H I C CNN F2 "TO92-CBE" 150 0 30 H I C CNN
F3 "" 0 0 60 H V C CNN
$FPLIST $FPLIST
TO92-CBE TO92-CBE
$ENDFPLIST $ENDFPLIST
...@@ -223,6 +250,8 @@ ENDDEF ...@@ -223,6 +250,8 @@ ENDDEF
DEF POT RV 0 40 Y N 1 F N DEF POT RV 0 40 Y N 1 F N
F0 "RV" 0 -100 50 H V C CNN F0 "RV" 0 -100 50 H V C CNN
F1 "POT" 0 0 50 H V C CNN F1 "POT" 0 0 50 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
S -150 50 150 -50 0 1 0 N S -150 50 150 -50 0 1 0 N
P 3 0 1 0 0 50 -20 70 20 70 F P 3 0 1 0 0 50 -20 70 20 70 F
...@@ -235,20 +264,23 @@ ENDDEF ...@@ -235,20 +264,23 @@ ENDDEF
# PWR_FLAG # PWR_FLAG
# #
DEF PWR_FLAG #FLG 0 0 N N 1 F P DEF PWR_FLAG #FLG 0 0 N N 1 F P
F0 "#FLG" 0 270 30 H I C CNN F0 "#FLG" 0 95 30 H I C CNN
F1 "PWR_FLAG" 0 230 30 H V C CNN F1 "PWR_FLAG" 0 180 30 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
X pwr 1 0 0 0 U 20 20 0 0 w X pwr 1 0 0 0 U 20 20 0 0 w
P 3 0 1 0 0 0 0 100 0 100 N P 6 0 1 0 0 0 0 50 -75 100 0 150 75 100 0 50 N
P 5 0 1 0 0 100 -100 150 0 200 100 150 0 100 N
ENDDRAW ENDDRAW
ENDDEF ENDDEF
# #
# R # R
# #
DEF R R 0 0 N Y 1 F N DEF R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN F0 "R" 80 0 40 V V C CNN
F1 "R" 0 0 50 V V C CNN F1 "R" 7 1 40 V V C CNN
F2 "" -70 0 30 V V C CNN
F3 "" 0 0 30 H V C CNN
$FPLIST $FPLIST
R? R?
SM0603 SM0603
...@@ -268,6 +300,8 @@ ENDDEF ...@@ -268,6 +300,8 @@ ENDDEF
DEF VCC #PWR 0 0 Y Y 1 F P DEF VCC #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 100 30 H I C CNN F0 "#PWR" 0 100 30 H I C CNN
F1 "VCC" 0 100 30 H V C CNN F1 "VCC" 0 100 30 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW DRAW
X VCC 1 0 0 0 U 20 20 0 0 W N X VCC 1 0 0 0 U 20 20 0 0 W N
C 0 50 20 0 1 0 N C 0 50 20 0 1 0 N
......
update=12/03/2011 18:54:54 update=25/01/2014 08:37:41
version=1 version=1
last_client=pcbnew last_client=kicad
[cvpcb] [cvpcb]
version=1 version=1
NetITyp=0 NetIExt=net
NetIExt=.net
PkgIExt=.pkg
NetDir=
LibDir=
NetType=0
[cvpcb/libraries] [cvpcb/libraries]
EquName1=devcms EquName1=devcms
[general]
version=1
[eeschema] [eeschema]
version=1 version=1
LibDir=F:\\kicad\\share\\library PageLayoutDescrFile=
NetFmt=1 SubpartIdSeparator=0
HPGLSpd=20 SubpartFirstId=65
HPGLDm=15 LibDir=F:/kicad/share/library
HPGLNum=1 NetFmtName=
offX_A4=0
offY_A4=0
offX_A3=0
offY_A3=0
offX_A2=0
offY_A2=0
offX_A1=0
offY_A1=0
offX_A0=0
offY_A0=0
offX_A=0
offY_A=0
offX_B=0
offY_B=0
offX_C=0
offY_C=0
offX_D=0
offY_D=0
offX_E=0
offY_E=0
RptD_X=0 RptD_X=0
RptD_Y=100 RptD_Y=100
RptLab=1 RptLab=1
SimCmd=
UseNetN=0
LabSize=60 LabSize=60
PrintMonochrome=1
ShowSheetReferenceAndTitleBlock=1
[eeschema/libraries] [eeschema/libraries]
LibName1=power LibName1=power
LibName2=device LibName2=device
...@@ -59,30 +28,25 @@ LibName7=interface ...@@ -59,30 +28,25 @@ LibName7=interface
LibName8=special LibName8=special
[pcbnew] [pcbnew]
version=1 version=1
PadDrlX=320 PageLayoutDescrFile=
PadDimH=600
PadDimV=600
BoardThickness=630
TxtPcbV=800
TxtPcbH=600
TxtModV=600
TxtModH=600
TxtModW=120
VEgarde=100
DrawLar=150
EdgeLar=150
TxtLar=120
MSegLar=150
LastNetListRead= LastNetListRead=
UseCmpFile=1
PadDrill=0.8128
PadDrillOvalY=0.8128
PadSizeH=2.286
PadSizeV=2.286
PcbTextSizeV=2
PcbTextSizeH=2
PcbTextThickness=0.3
ModuleTextSizeV=1
ModuleTextSizeH=1
ModuleTextSizeThickness=0.2
SolderMaskClearance=0.254
SolderMaskMinWidth=0
DrawSegmentWidth=0.3
BoardOutlineThickness=0.09999999999999999
ModuleOutlineThickness=0.2
[pcbnew/libraries] [pcbnew/libraries]
LibDir= LibDir=
LibName1=sockets [general]
LibName2=connect version=1
LibName3=discret
LibName4=pin_array
LibName5=divers
LibName6=libcms
LibName7=display
LibName8=valves
LibName9=led
LibName10=dip_sockets
update=20/06/2009 21:38:13 update=24/01/2014 13:22:43
last_client=pcbnew last_client=eeschema
[general] [general]
version=1 version=1
RootSch=kit-dev-coldfire_5213.sch [cvpcb]
BoardNm=kit-dev-coldfire_5213.brd version=1
NetIExt=net
[cvpcb/libraries]
EquName1=devcms
[pcbnew]
version=1
PageLayoutDescrFile=
LastNetListRead=
UseCmpFile=1
PadDrill=0
PadDrillOvalY=0
PadSizeH=0.4064
PadSizeV=1.27
PcbTextSizeV=2.032
PcbTextSizeH=1.524
PcbTextThickness=0.3048
ModuleTextSizeV=1.524
ModuleTextSizeH=1.524
ModuleTextSizeThickness=0.3048
SolderMaskClearance=0.2
SolderMaskMinWidth=0
DrawSegmentWidth=0.381
BoardOutlineThickness=0.381
ModuleOutlineThickness=0.1524
[pcbnew/libraries]
LibDir=
[eeschema] [eeschema]
version=1 version=1
PageLayoutDescrFile=
SubpartIdSeparator=0
SubpartFirstId=65
LibDir= LibDir=
NetFmt=1 NetFmtName=
HPGLSpd=20
HPGLDm=15
HPGLNum=1
offX_A4=0
offY_A4=0
offX_A3=0
offY_A3=0
offX_A2=0
offY_A2=0
offX_A1=0
offY_A1=0
offX_A0=0
offY_A0=0
offX_A=0
offY_A=0
offX_B=0
offY_B=0
offX_C=0
offY_C=0
offX_D=0
offY_D=0
offX_E=0
offY_E=0
RptD_X=0 RptD_X=0
RptD_Y=100 RptD_Y=100
RptLab=1 RptLab=1
SimCmd=
UseNetN=0
LabSize=60 LabSize=60
[eeschema/libraries] [eeschema/libraries]
LibName1=power LibName1=power
...@@ -45,71 +48,9 @@ LibName4=conn ...@@ -45,71 +48,9 @@ LibName4=conn
LibName5=linear LibName5=linear
LibName6=regul LibName6=regul
LibName7=74xx LibName7=74xx
LibName8=cmos4000 LibName8=adc-dac
LibName9=adc-dac LibName9=memory
LibName10=memory LibName10=xilinx
LibName11=xilinx LibName11=special
LibName12=special LibName12=microcontrollers
LibName13=microcontrollers LibName13=motorola
LibName14=dsp
LibName15=microchip
LibName16=analog_switches
LibName17=motorola
LibName18=texas
LibName19=intel
LibName20=audio
LibName21=interface
LibName22=digital-audio
LibName23=philips
LibName24=display
LibName25=cypress
LibName26=siliconi
LibName27=contrib
LibName28=valves
[pcbnew]
version=1
PadDrlX=0
PadDimH=160
PadDimV=500
ViaDiam=450
ViaDril=150
ViaAltD=250
MViaDia=200
MViaDrl=80
Isol=60
LayerThickness=630
Countlayer=4
Lpiste=220
RouteTo=15
RouteBo=0
TypeVia=3
Segm45=1
Racc45=1
SgPcb45=1
TxtPcbV=800
TxtPcbH=600
TxtModV=600
TxtModH=600
TxtModW=120
HPGLnum=1
HPGdiam=15
HPGLSpd=20
HPGLrec=2
HPGLorg=0
VEgarde=100
DrawLar=150
EdgeLar=150
TxtLar=120
MSegLar=60
WpenSer=10
[pcbnew/libraries]
LibDir=
LibName1=sockets
LibName2=dip_sockets
LibName3=connect
LibName4=discret
LibName5=pin_array
LibName6=divers
LibName7=libcms
LibName8=display
LibName9=valves
# EESchema Netlist Version 1.1 created 19/12/2011 12:55:28 (export (version D)
( (design
( /4EE5056D $noname P4 CONN_1 {Lib=CONN_1} (source F:/kicad-launchpad/testing/demos/test_pads_inside_pads/test_pads_inside_pads.sch)
( 1 /NET1 ) (date "09/01/2014 15:29:02")
) (tool "eeschema (2014-01-08 BZR 4616)-product"))
( /4EE5056C $noname P3 CONN_1 {Lib=CONN_1} (components
( 1 /NET1 ) (comp (ref P4)
) (value CONN_1)
( /4EDF7CC5 $noname P1 CONN_1 {Lib=CONN_1} (libsource (lib conn) (part CONN_1))
( 1 /NET2 ) (sheetpath (names /) (tstamps /))
) (tstamp 4EE5056D))
( /4EDF7CC0 $noname P2 CONN_1 {Lib=CONN_1} (comp (ref P3)
( 1 /NET2 ) (value CONN_1)
) (libsource (lib conn) (part CONN_1))
) (sheetpath (names /) (tstamps /))
* (tstamp 4EE5056C))
{ Pin List by Nets (comp (ref P1)
Net 1 "/NET1" "NET1" (value CONN_1)
P4 1 (libsource (lib conn) (part CONN_1))
P3 1 (sheetpath (names /) (tstamps /))
Net 2 "/NET2" "NET2" (tstamp 4EDF7CC5))
P1 1 (comp (ref P2)
P2 1 (value CONN_1)
} (libsource (lib conn) (part CONN_1))
#End (sheetpath (names /) (tstamps /))
(tstamp 4EDF7CC0)))
(libparts
(libpart (lib conn) (part CONN_1)
(description "1 pin")
(fields
(field (name Reference) P)
(field (name Value) CONN_1))
(pins
(pin (num 1) (name 1) (type passive)))))
(libraries
(library (logical conn)
(uri F:\kicad\share\library\conn.lib)))
(nets
(net (code 1) (name /NET1)
(node (ref P4) (pin 1))
(node (ref P3) (pin 1)))
(net (code 2) (name /NET2)
(node (ref P1) (pin 1))
(node (ref P2) (pin 1)))))
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
update=07/03/2011 07:11:33 update=09/01/2014 18:43:43
version=1 version=1
last_client=cvpcb last_client=kicad
[pcbnew] [pcbnew]
version=1 version=1
LibDir= LibDir=
...@@ -118,12 +118,10 @@ LibName8=memory ...@@ -118,12 +118,10 @@ LibName8=memory
LibName9=xilinx LibName9=xilinx
LibName10=special LibName10=special
LibName11=analog_switches LibName11=analog_switches
[general]
version=1
RootSch=carte_test.sch
BoardNm=carte_test.brd
[cvpcb] [cvpcb]
version=1 version=1
NetIExt=.net NetIExt=.net
[cvpcb/libraries] [cvpcb/libraries]
EquName1=devcms EquName1=devcms
[general]
version=1
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Nov 6 2013)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -375,7 +375,6 @@ void LIB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event ) ...@@ -375,7 +375,6 @@ void LIB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event )
} }
} }
SaveSettings();
Destroy(); Destroy();
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment