Commit 85365b0d authored by Maciej Suminski's avatar Maciej Suminski

Upstream merge.

parents 82661dc3 94bc4355
......@@ -101,6 +101,16 @@ else()
endif()
find_program(patch_bin NAMES patch patch.exe)
if( "${patch_bin}" STREQUAL "patch_bin-NOTFOUND" )
set( PATCH_STR_CMD ${PATCH_STR_CMD} )
else()
set( PATCH_STR_CMD ${patch_bin} -p0 -i )
endif()
if( MINGW AND NOT CMAKE_HOST_UNIX ) # building for MINGW on windows not UNIX
if( MSYS )
# The Boost system does not build properly on MSYS using bootstrap.sh. Running
......@@ -197,25 +207,25 @@ ExternalProject_Add( boost
# bzr revert is insufficient to remove "added" files:
COMMAND bzr clean-tree -q --force
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/boost_minkowski.patch"
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/boost_cstdint.patch"
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/boost_minkowski.patch"
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/boost_cstdint.patch"
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/boost_macosx_x86.patch" #https://svn.boost.org/trac/boost/ticket/8266
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/boost_macosx_x86.patch" #https://svn.boost.org/trac/boost/ticket/8266
# tell bzr about "added" files by last patch:
COMMAND bzr add libs/context/src/asm/jump_i386_x86_64_sysv_macho_gas.S
COMMAND bzr add libs/context/src/asm/make_i386_x86_64_sysv_macho_gas.S
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/boost_macosx_x86_build.patch" #https://svn.boost.org/trac/boost/ticket/8266
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/boost_macosx_older_openssl.patch" #https://svn.boost.org/trac/boost/ticket/9273
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/boost_macosx_x86_build.patch" #https://svn.boost.org/trac/boost/ticket/8266
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/boost_macosx_older_openssl.patch" #https://svn.boost.org/trac/boost/ticket/9273
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/boost_mingw.patch" #https://svn.boost.org/trac/boost/ticket/7262
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/boost_mingw.patch" #https://svn.boost.org/trac/boost/ticket/7262
# tell bzr about "added" files by last patch:
COMMAND bzr add libs/context/src/asm/make_i386_ms_pe_gas.S
COMMAND bzr add libs/context/src/asm/jump_i386_ms_pe_gas.S
COMMAND bzr add libs/context/src/asm/make_x86_64_ms_pe_gas.S
COMMAND bzr add libs/context/src/asm/jump_x86_64_ms_pe_gas.S
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/patch_macosx_context_ppc_v2.patch" #https://svn.boost.org/trac/boost/ticket/8266
COMMAND ${PATCH_STR_CMD} "${PROJECT_SOURCE_DIR}/patches/patch_macosx_context_ppc_v2.patch" #https://svn.boost.org/trac/boost/ticket/8266
COMMAND bzr add libs/context/build/Jamfile.v2
COMMAND bzr add libs/context/build/architecture.jam
COMMAND bzr add libs/context/src/asm/jump_combined_sysv_macho_gas.S
......
......@@ -42,6 +42,14 @@ if( CMAKE_TOOLCHAIN_FILE )
set( TOOLCHAIN "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" )
endif()
FIND_PROGRAM (patch_bin NAMES patch.exe patch)
if( "${patch_bin}" STREQUAL "patch_bin-NOTFOUND" )
set( PATCH_STR_CMD bzr patch -p0 )
else()
set( PATCH_STR_CMD ${patch_bin} -p0 -i )
endif()
ExternalProject_Add(
openssl
DOWNLOAD_DIR ${DOWNLOAD_DIR}
......@@ -58,13 +66,13 @@ ExternalProject_Add(
# PATCH_COMMAND patch -p0 < ${PROJECT_SOURCE_DIR}/patches/openssl-1.0.1e.patch
# This one requires the bzr commit below, since bzr patch only knows a working tree.
# Revert the branch to pristine before applying patch sets as bzr patch
# fails when applying a patch to the branch twice and doesn't have a switch
# to ignore previously applied patches
PATCH_COMMAND bzr revert
# PATCH_COMMAND continuation (any *_COMMAND here can be continued with COMMAND):
COMMAND bzr patch -p0 ${PROJECT_SOURCE_DIR}/patches/openssl-1.0.1e.patch
COMMAND ${PATCH_STR_CMD} ${PROJECT_SOURCE_DIR}/patches/openssl-1.0.1e.patch
CONFIGURE_COMMAND
${CMAKE_COMMAND}
......
......@@ -176,6 +176,7 @@ set( BMAPS_MID
copyblock
copycomponent
copy_button
copy_library
copper_layers_setup
cursor_shape
cursor
......
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x06, 0x5f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x79, 0x4c, 0x54,
0x57, 0x14, 0xc6, 0x5f, 0x97, 0xa4, 0x8d, 0xd1, 0xf4, 0x0f, 0xd3, 0x58, 0x40, 0x23, 0x51, 0xb0,
0x35, 0x30, 0x52, 0x53, 0xa0, 0x2a, 0x1a, 0x96, 0xaa, 0x65, 0x51, 0x89, 0x16, 0x6d, 0xad, 0xb5,
0xd1, 0xba, 0x44, 0x45, 0xc4, 0xa5, 0x8a, 0x11, 0x11, 0x17, 0x6a, 0x1c, 0xd4, 0x26, 0xa2, 0xb6,
0x01, 0xea, 0xda, 0x5a, 0xc5, 0x28, 0x08, 0x8c, 0x02, 0x65, 0x86, 0x19, 0x18, 0x66, 0x80, 0x61,
0x19, 0x04, 0x59, 0x67, 0x5f, 0x90, 0x81, 0x41, 0x20, 0x08, 0xb3, 0xbd, 0x37, 0xef, 0xf4, 0xdc,
0x67, 0xb5, 0xd8, 0x46, 0xaa, 0x4d, 0xd3, 0x97, 0x9c, 0x64, 0x66, 0x72, 0xef, 0xfd, 0x9d, 0xef,
0x9c, 0xef, 0xdc, 0x37, 0x14, 0x00, 0x50, 0x24, 0x84, 0xbe, 0xbe, 0xfb, 0x44, 0xd3, 0xa7, 0x47,
0x1c, 0xa6, 0xa8, 0xd7, 0x9f, 0xfe, 0xf6, 0x32, 0x51, 0x34, 0x61, 0xc2, 0xfb, 0xe2, 0x99, 0x33,
0x93, 0x4b, 0x26, 0x4e, 0xfc, 0x60, 0xac, 0x75, 0x94, 0xb7, 0xb7, 0xf7, 0x2e, 0x5f, 0x5f, 0xdf,
0x84, 0x5b, 0xa1, 0xa1, 0x97, 0x8c, 0x39, 0x39, 0x17, 0xa5, 0xf3, 0xe7, 0x9f, 0x40, 0xe8, 0xa2,
0x9b, 0x14, 0xf5, 0xc6, 0x8b, 0x36, 0x89, 0x29, 0xea, 0xcd, 0xe2, 0xa9, 0x53, 0xc3, 0x85, 0x3c,
0xde, 0x09, 0xc9, 0x8e, 0x1d, 0xd7, 0x85, 0x7c, 0x7e, 0x55, 0x9c, 0xa7, 0xe7, 0x4d, 0x2f, 0x2f,
0xaf, 0x98, 0x17, 0x82, 0x02, 0x02, 0x02, 0x4e, 0x68, 0xb5, 0xda, 0x2b, 0x85, 0xeb, 0xd7, 0x37,
0x8a, 0x44, 0xa2, 0x0e, 0x81, 0x40, 0xd0, 0x22, 0xcf, 0xca, 0x2a, 0x29, 0x0e, 0x0c, 0x3c, 0x9d,
0x3f, 0x6e, 0x9c, 0xe7, 0x5f, 0x37, 0x94, 0x4e, 0x9e, 0xcc, 0xfb, 0x95, 0xc7, 0xfb, 0x45, 0x70,
0xec, 0x58, 0x5d, 0x91, 0x40, 0xd0, 0x51, 0x5e, 0x5e, 0xae, 0x31, 0x8a, 0x44, 0x6a, 0x49, 0x7a,
0x7a, 0x91, 0xa7, 0xa7, 0xe7, 0x17, 0x63, 0x82, 0xf0, 0xc3, 0x95, 0xb6, 0xe3, 0xc7, 0x1f, 0x0c,
0x0e, 0x0e, 0x1a, 0xf0, 0x31, 0x49, 0x24, 0x12, 0x83, 0xa4, 0xb4, 0xb4, 0xfd, 0x52, 0x58, 0x98,
0xf0, 0x7b, 0x0f, 0x8f, 0x05, 0xdc, 0x62, 0x8a, 0x7a, 0xed, 0xa7, 0x69, 0xd3, 0x12, 0xaf, 0xae,
0x5c, 0xa9, 0x50, 0xd6, 0xd7, 0x77, 0xd6, 0xd5, 0xd5, 0x19, 0x31, 0x41, 0xd3, 0xc8, 0xc8, 0x88,
0xbe, 0x47, 0x2a, 0xd5, 0x8a, 0x11, 0x84, 0x8a, 0x56, 0x8d, 0x05, 0xe2, 0x13, 0x90, 0x2a, 0x3d,
0xbd, 0x79, 0x78, 0x78, 0x58, 0x8f, 0x9f, 0xd5, 0xfd, 0xfd, 0xfd, 0xc6, 0x86, 0x86, 0x86, 0xae,
0x96, 0x07, 0x0f, 0x74, 0x97, 0xe2, 0xe2, 0x94, 0xc7, 0xbc, 0xbc, 0x92, 0x4f, 0xcd, 0x98, 0x71,
0x4f, 0x78, 0xf6, 0x6c, 0x0b, 0x3e, 0x7a, 0x0c, 0x33, 0x59, 0xcb, 0xb2, 0xac, 0xc6, 0x6e, 0xb7,
0xeb, 0x2c, 0xe5, 0xe5, 0x5a, 0x31, 0x9f, 0x7f, 0x0f, 0x41, 0x2b, 0x5f, 0x0a, 0x84, 0x9b, 0xb4,
0xf5, 0xf5, 0xf5, 0x5d, 0x7d, 0x7d, 0x7d, 0x46, 0x72, 0x40, 0x47, 0x47, 0x87, 0xf9, 0xb6, 0xf4,
0xb6, 0x65, 0x77, 0xd2, 0x7c, 0x47, 0x7d, 0x45, 0x89, 0xa1, 0xba, 0xba, 0xda, 0x6c, 0xb5, 0x5a,
0x0d, 0x4e, 0xa7, 0x53, 0x3b, 0x30, 0x30, 0x60, 0x68, 0x6c, 0x6c, 0xec, 0xea, 0xee, 0xee, 0x36,
0xf4, 0xcb, 0x64, 0xea, 0x32, 0x3e, 0xff, 0x2e, 0x82, 0xe2, 0x46, 0x1f, 0xee, 0x97, 0xe3, 0x17,
0x12, 0x56, 0x30, 0x3f, 0x8d, 0x03, 0xf1, 0x78, 0xbc, 0x67, 0x20, 0x52, 0x3a, 0x54, 0x63, 0xb8,
0x7f, 0xff, 0xbe, 0x49, 0x28, 0x14, 0x3e, 0xdc, 0xbe, 0x7d, 0xfb, 0xf0, 0x91, 0x9c, 0xd4, 0xc1,
0xec, 0xca, 0xd3, 0xee, 0xb4, 0x9a, 0x54, 0xfb, 0xd9, 0xc6, 0x33, 0x83, 0xc6, 0x5e, 0x83, 0x09,
0x01, 0x66, 0x54, 0x4c, 0xa0, 0x46, 0x04, 0x1a, 0x2d, 0x12, 0x89, 0x56, 0x94, 0x9e, 0x7e, 0xd7,
0xc3, 0xc3, 0x63, 0x85, 0x4f, 0x86, 0xcf, 0x5b, 0x73, 0xef, 0x04, 0x7f, 0xfd, 0xa9, 0xe0, 0x93,
0xd2, 0x53, 0xd5, 0x7c, 0x55, 0xf4, 0xd5, 0xc5, 0xe6, 0x49, 0x93, 0x26, 0x15, 0x53, 0xfe, 0xfe,
0xfe, 0xe9, 0x4f, 0x41, 0x43, 0x43, 0x43, 0x7a, 0xa2, 0xc4, 0xe1, 0x70, 0xe8, 0x6e, 0xdc, 0xb8,
0xd1, 0x93, 0x9a, 0x9a, 0x4a, 0x1f, 0xbe, 0x76, 0x88, 0x2e, 0x50, 0xe6, 0x82, 0xb4, 0xa2, 0x82,
0x55, 0x68, 0x14, 0xee, 0xdd, 0xa5, 0xbb, 0x9c, 0xd9, 0xca, 0xac, 0x7e, 0xb2, 0x8e, 0x28, 0x23,
0x7b, 0x7a, 0x24, 0x12, 0x4d, 0x29, 0x2a, 0x0a, 0x38, 0xc2, 0xcb, 0x8e, 0xbe, 0x11, 0xd9, 0xfa,
0x73, 0xed, 0xd5, 0x21, 0x45, 0x9d, 0xc2, 0x61, 0x32, 0x99, 0x9c, 0x7b, 0xca, 0x76, 0xda, 0xa3,
0xa3, 0xa3, 0xe5, 0x7f, 0x82, 0xf8, 0x7c, 0xd2, 0x23, 0x9d, 0x52, 0xa9, 0x34, 0x35, 0x35, 0x35,
0x75, 0xe5, 0xe7, 0xe7, 0x5b, 0xb2, 0xb3, 0xb3, 0x5d, 0x22, 0xa3, 0x90, 0xa9, 0x30, 0x88, 0x61,
0x64, 0x78, 0x18, 0xe4, 0x72, 0x39, 0x8b, 0xe5, 0x63, 0xb3, 0x65, 0x99, 0xee, 0x84, 0xdc, 0x78,
0x5b, 0x6d, 0x43, 0xad, 0xf9, 0xd1, 0xa3, 0x47, 0x3a, 0x8d, 0x50, 0xa0, 0x5b, 0x91, 0xb9, 0xc8,
0x7a, 0x5a, 0x74, 0xd2, 0x8e, 0xe5, 0x76, 0x29, 0x14, 0x0a, 0xba, 0xa7, 0xa7, 0x87, 0x76, 0xb9,
0x5c, 0xf4, 0xc1, 0xea, 0x03, 0xf6, 0xa8, 0xa8, 0x28, 0x39, 0xe5, 0xe7, 0xe7, 0xf7, 0x0c, 0x44,
0x94, 0x90, 0x52, 0x68, 0x34, 0x1a, 0xf3, 0xf9, 0xf3, 0xe7, 0xad, 0x99, 0x99, 0x99, 0x2e, 0xb1,
0x59, 0xcc, 0x48, 0x4d, 0x12, 0x00, 0xec, 0x3c, 0x6e, 0x04, 0x74, 0x25, 0x54, 0xa0, 0xba, 0xdf,
0xda, 0x4a, 0xd8, 0xb8, 0x0b, 0xcb, 0xe9, 0xeb, 0xd2, 0xeb, 0xbd, 0x4b, 0xb2, 0x16, 0x31, 0x55,
0x2a, 0x99, 0x1b, 0x13, 0x71, 0xe3, 0x5e, 0x9a, 0x3c, 0x78, 0xa6, 0xcb, 0xed, 0x76, 0xd3, 0x87,
0x14, 0xc9, 0xb6, 0xc5, 0x8b, 0x17, 0x3f, 0x0f, 0x32, 0x9b, 0xcd, 0xc6, 0xb6, 0xb6, 0x36, 0xce,
0x51, 0x44, 0x11, 0xc2, 0x68, 0xb1, 0xa9, 0x8c, 0xa9, 0x30, 0x4b, 0x00, 0x33, 0x05, 0x8b, 0xc5,
0x02, 0x04, 0x86, 0x96, 0x06, 0x9c, 0x39, 0xa8, 0x6e, 0xaf, 0x66, 0x17, 0xe5, 0x84, 0x43, 0x6b,
0x67, 0x0b, 0x4b, 0x4a, 0x8b, 0xe5, 0x64, 0xf0, 0xa1, 0x6d, 0x36, 0x1b, 0x8d, 0x3d, 0x64, 0x88,
0xa2, 0xd4, 0xda, 0x83, 0xb6, 0x85, 0x0b, 0x17, 0x3e, 0x01, 0x35, 0x37, 0x37, 0xe7, 0x15, 0xef,
0xdc, 0xa9, 0x2a, 0x2a, 0x2c, 0xec, 0xbd, 0x75, 0xeb, 0x96, 0xf5, 0xf2, 0xe5, 0xcb, 0xd6, 0xa3,
0x47, 0x8f, 0x0e, 0x64, 0x64, 0x64, 0xd0, 0x65, 0x06, 0x91, 0x5b, 0x6c, 0x14, 0x01, 0xaa, 0x05,
0x5c, 0xc7, 0x95, 0xef, 0xf1, 0xe3, 0xc7, 0x04, 0xc8, 0xf6, 0xf4, 0xf6, 0xb0, 0x9f, 0xdd, 0x89,
0x85, 0x3e, 0xab, 0x95, 0x75, 0x39, 0x9d, 0x2c, 0x26, 0xc0, 0xd4, 0xd4, 0xd4, 0x30, 0x58, 0x3a,
0x06, 0x7b, 0xc7, 0x95, 0xee, 0x90, 0xe2, 0x80, 0x2d, 0x22, 0x22, 0x42, 0x4e, 0x05, 0x06, 0x06,
0xb6, 0x60, 0xb3, 0x1c, 0xcb, 0x63, 0x63, 0x9d, 0xc1, 0x41, 0x41, 0x10, 0x16, 0x1a, 0xca, 0xc5,
0xec, 0xd9, 0xb3, 0x01, 0xcd, 0x00, 0x85, 0x2d, 0x05, 0x20, 0x32, 0x08, 0x39, 0x10, 0xa9, 0xc8,
0xf0, 0x93, 0x5e, 0x41, 0x7b, 0x7b, 0x3b, 0x6b, 0x1b, 0x19, 0x61, 0x97, 0xe7, 0x2d, 0x05, 0x02,
0xc1, 0x24, 0xdc, 0x95, 0x95, 0x95, 0x6e, 0x84, 0xd1, 0x44, 0x15, 0x56, 0x9a, 0x7e, 0xa2, 0x28,
0xd9, 0x16, 0x1a, 0x1a, 0x2a, 0xa7, 0xe6, 0xcc, 0x99, 0x63, 0x4c, 0x49, 0x49, 0xe1, 0x0e, 0x8d,
0x8c, 0x8c, 0x84, 0x0d, 0x1b, 0x36, 0xc0, 0xba, 0x75, 0xeb, 0x20, 0x31, 0x31, 0x11, 0xce, 0x9d,
0x3b, 0x07, 0x12, 0x34, 0x42, 0x99, 0x51, 0x08, 0x3a, 0x9d, 0x0e, 0x30, 0x5b, 0xf8, 0x43, 0x0d,
0x18, 0xf4, 0x7a, 0xb6, 0xb3, 0xb3, 0x93, 0x8d, 0xcd, 0x5b, 0xc2, 0xa2, 0xdd, 0x19, 0x9c, 0x27,
0x86, 0xf4, 0x04, 0x13, 0xa2, 0x71, 0xa0, 0x19, 0x9c, 0x47, 0x86, 0xc0, 0x0e, 0x62, 0x8f, 0x16,
0x2c, 0x58, 0x20, 0xa7, 0xe6, 0xcd, 0x9b, 0xa7, 0x19, 0x0d, 0xda, 0xb2, 0x65, 0x0b, 0xec, 0xdd,
0xbb, 0x17, 0x36, 0x6d, 0xda, 0xc4, 0x81, 0xca, 0x8d, 0x12, 0x10, 0x1a, 0x4a, 0x01, 0xeb, 0xce,
0xa9, 0xc1, 0xac, 0xa1, 0xb5, 0xb5, 0x15, 0x48, 0x3f, 0xec, 0x0e, 0x3b, 0xbd, 0x2c, 0x37, 0xc6,
0x4d, 0x9a, 0x4f, 0x00, 0x6a, 0xb5, 0x9a, 0xae, 0xaa, 0xaa, 0x62, 0x88, 0xe3, 0xc8, 0x77, 0xce,
0x75, 0x08, 0x0a, 0x09, 0x09, 0x79, 0x1e, 0x14, 0x1e, 0x1e, 0xce, 0x41, 0x36, 0x6e, 0xdc, 0x08,
0xfb, 0xf7, 0xef, 0x07, 0xec, 0x11, 0x07, 0x2a, 0xd1, 0x16, 0x81, 0x4a, 0xa5, 0x22, 0x87, 0x03,
0xce, 0x0e, 0xa7, 0x0e, 0xef, 0x43, 0xf7, 0xc0, 0xe0, 0x00, 0xbd, 0x14, 0x41, 0xbd, 0xbd, 0xbd,
0xb4, 0x54, 0x2a, 0x65, 0xf4, 0x7a, 0x3d, 0x77, 0x38, 0x09, 0x34, 0x16, 0x8d, 0xea, 0xe9, 0x14,
0x04, 0xcd, 0x9d, 0x3b, 0xb7, 0xea, 0x39, 0xd0, 0xb6, 0x6d, 0xdb, 0x60, 0xd9, 0xb2, 0x65, 0x5c,
0x60, 0x16, 0x80, 0x86, 0x80, 0xe2, 0xb6, 0x7b, 0x50, 0xa8, 0x2e, 0x00, 0xb4, 0x3d, 0x60, 0xb6,
0x80, 0x6e, 0xe2, 0xd4, 0x11, 0x7b, 0x3d, 0xec, 0x7e, 0xc8, 0x81, 0xc8, 0xa1, 0x4f, 0xcb, 0x86,
0xbd, 0x63, 0xf0, 0xc2, 0x65, 0xf0, 0xc2, 0xa5, 0x6d, 0x76, 0x1b, 0x9d, 0x54, 0xf5, 0xad, 0x2d,
0x38, 0x38, 0xf8, 0x09, 0x28, 0x3e, 0x3e, 0x9e, 0xeb, 0xc9, 0xbe, 0x7d, 0xfb, 0x9e, 0xc5, 0xea,
0xd5, 0xab, 0x21, 0x29, 0x29, 0x09, 0x34, 0x5d, 0x6a, 0x38, 0x59, 0xc7, 0x87, 0x23, 0x35, 0xa9,
0x70, 0x57, 0x2d, 0x00, 0x43, 0x17, 0x37, 0x47, 0xc4, 0xea, 0x8c, 0xcd, 0x61, 0xa3, 0x97, 0xe6,
0x45, 0x73, 0xa5, 0xc3, 0x1e, 0xd1, 0x32, 0x99, 0x8c, 0xd1, 0x1b, 0xf4, 0xb4, 0xcc, 0x54, 0x49,
0x9f, 0x54, 0x9e, 0x70, 0xec, 0xac, 0xdc, 0x61, 0xcb, 0x90, 0x9d, 0xb1, 0xe2, 0xfb, 0xae, 0x9e,
0x03, 0x91, 0x52, 0x91, 0xcd, 0xa3, 0xa3, 0xa8, 0xa8, 0x08, 0x12, 0x12, 0x12, 0x20, 0x36, 0x36,
0x16, 0x56, 0xad, 0x5a, 0x05, 0x69, 0xc7, 0xd3, 0xe0, 0x87, 0x92, 0xf3, 0x70, 0xb8, 0x2a, 0x05,
0x2e, 0x35, 0x5f, 0x60, 0x1b, 0x94, 0x0d, 0x8c, 0x4a, 0xa3, 0xa2, 0x97, 0xdc, 0x8e, 0x76, 0x13,
0x33, 0x34, 0x35, 0x37, 0x31, 0x97, 0x5b, 0x2e, 0x3a, 0xbf, 0xcc, 0xfd, 0x7c, 0x24, 0x26, 0x2d,
0xd2, 0x30, 0x2b, 0x7c, 0x56, 0xad, 0x8f, 0x8f, 0xcf, 0x3d, 0x8c, 0xd3, 0xe3, 0xc7, 0x8f, 0x8f,
0x7a, 0x21, 0x68, 0x74, 0x90, 0xe1, 0xcc, 0xca, 0xca, 0x82, 0x3d, 0x7b, 0xf6, 0x00, 0x96, 0x01,
0xd6, 0x1e, 0xfe, 0x8a, 0x49, 0x96, 0xed, 0x77, 0x58, 0x86, 0xbb, 0xe9, 0x25, 0xb9, 0xd1, 0x6e,
0xfd, 0x90, 0xde, 0xb5, 0x36, 0x6f, 0xcd, 0x88, 0xff, 0x9a, 0x99, 0x6d, 0x78, 0x81, 0x7e, 0x43,
0x51, 0xd4, 0x94, 0xbf, 0xbd, 0x26, 0x5e, 0x06, 0x34, 0x3a, 0x88, 0x59, 0xd0, 0xae, 0x83, 0xde,
0x1f, 0x79, 0x97, 0x2d, 0xfc, 0x31, 0x62, 0x20, 0xe4, 0x5a, 0x30, 0xfb, 0xf1, 0x77, 0x41, 0x96,
0xf7, 0xfc, 0xdf, 0xdd, 0x44, 0x8d, 0xf1, 0xfa, 0xff, 0x57, 0x20, 0x34, 0x4b, 0x5f, 0x50, 0x50,
0xd0, 0x87, 0xe3, 0xa6, 0x8c, 0xf3, 0x7a, 0x27, 0x6a, 0xc2, 0xee, 0xb1, 0x00, 0xff, 0x09, 0xe8,
0x55, 0xfe, 0x2d, 0xfd, 0xaf, 0x20, 0x35, 0xb1, 0xf6, 0xd6, 0xad, 0x5b, 0x39, 0x8b, 0xff, 0x53,
0x6c, 0xde, 0xbc, 0x19, 0x62, 0x62, 0x62, 0x1e, 0xe1, 0x5d, 0x18, 0xf0, 0x4a, 0x20, 0xbc, 0xeb,
0x36, 0xe2, 0xe4, 0x76, 0xe3, 0x80, 0x3e, 0x7c, 0xd9, 0xc0, 0xf5, 0xb2, 0xb0, 0xb0, 0xb0, 0xb7,
0x5f, 0x05, 0xf4, 0x3b, 0xd6, 0xb8, 0x5a, 0x39, 0x98, 0x47, 0x6d, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE copy_library_xpm[1] = {{ png, sizeof( png ), "copy_library_xpm" }};
//EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="26"
height="26"
id="svg2"
inkscape:version="0.48.4 r9939"
sodipodi:docname="save_library.svg">
<metadata
id="metadata166">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview164"
showgrid="true"
inkscape:zoom="13.906433"
inkscape:cx="11.483952"
inkscape:cy="24.158587"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false">
<inkscape:grid
type="xygrid"
id="grid3041"
empspacing="1"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<clipPath
id="ba">
<path
style="fill:#ffffff"
d="m 0,96 v 60 H 96 V 96 H 0 z m 68,20 c 9.9411,0 18,8.0589 18,18 0,9.9411 -8.0589,18 -18,18 -9.9411,0 -18,-8.0589 -18,-18 0,-9.9411 8.0589,-18 18,-18 z"
id="path125"
inkscape:connector-curvature="0" />
</clipPath>
<linearGradient
id="bl"
y2="5.9782"
gradientUnits="userSpaceOnUse"
x2="69"
gradientTransform="matrix(-0.2255,-0.071329,0.05452,-0.20327,7.6326,90.834)"
y1="122"
x1="69">
<stop
stop-color="#1e71ac"
offset="0"
id="stop128" />
<stop
stop-color="#81c1e9"
offset="1"
id="stop130" />
</linearGradient>
<linearGradient
id="bm"
y2="67.706001"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="118.33"
gradientTransform="matrix(0.39018,0.62586,-0.63862,0.30043,3.5817,-20.909)"
y1="87.488998"
x1="120.65" />
<linearGradient
id="a">
<stop
offset="0"
id="stop15" />
<stop
stop-opacity="0"
offset="1"
id="stop17" />
</linearGradient>
<linearGradient
id="bn"
y2="5.9782"
gradientUnits="userSpaceOnUse"
x2="69"
gradientTransform="matrix(-0.2255,-0.071329,0.05452,-0.20327,7.6018,90.825)"
y1="122"
x1="69">
<stop
stop-color="#cd2323"
offset="0"
id="stop134" />
<stop
stop-color="#ef7474"
offset="1"
id="stop136" />
</linearGradient>
<linearGradient
id="ao"
y2="67.706001"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="118.33"
y1="87.488998"
x1="120.65" />
<clipPath
id="aq">
<path
style="fill:url(#linearGradient4033)"
d="m 118,56 c -9.9411,0 -18,8.0589 -18,18 0,9.9411 8.0589,18 18,18 9.7305,0 17.637,-7.7253 17.969,-17.375 v -1.25 C 135.639,63.725 127.729,56 117.999,56 z m -6,10.75 c 5.9493,0.05747 10.832,4.9413 11.031,10.875 l 3.75,0.03125 -6,8.7188 -6.1562,-8.8125 3.9688,0.03125 c -0.25101,-4.9057 -4.4893,-9.9506 -11.719,-9.625 1.5223,-0.80073 3.2718,-1.2367 5.125,-1.2188 z"
id="path122"
inkscape:connector-curvature="0" />
</clipPath>
<linearGradient
id="bo"
y2="5.1837001"
xlink:href="#an"
gradientUnits="userSpaceOnUse"
x2="84.360001"
gradientTransform="matrix(0.21868,0.069171,-0.053262,0.19858,-13.124,56.327)"
y1="79.417"
x1="84.360001" />
<linearGradient
id="an">
<stop
stop-color="#fff"
offset="0"
id="stop65" />
<stop
stop-color="#fff"
stop-opacity=".49804"
offset=".43290"
id="stop67" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop69" />
</linearGradient>
<linearGradient
id="bp"
y2="67.706001"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="118.33"
gradientTransform="matrix(-0.39018,-0.62586,0.63862,-0.30043,-9.9736,166.82)"
y1="87.488998"
x1="120.65" />
<linearGradient
y2="67.706001"
x2="118.33"
y1="87.488998"
x1="120.65"
gradientUnits="userSpaceOnUse"
id="linearGradient3263"
xlink:href="#a"
inkscape:collect="always" />
<linearGradient
y2="5.1837001"
x2="84.360001"
y1="79.417"
x1="84.360001"
gradientTransform="matrix(-0.21868,-0.069171,0.053262,-0.19858,6.7324,89.587)"
gradientUnits="userSpaceOnUse"
id="linearGradient3265"
xlink:href="#an"
inkscape:collect="always" />
</defs>
<g
id="g3990">
<path
style="opacity:0.62891002;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.70963186;stroke-linejoin:round"
d="M 9.6596115,5.3159336 C 8.7156736,3.8303478 3.0884583,1.8780913 0.49605765,1.4843719 0.63286624,6.1106521 0.6354959,8.6438074 0.49418944,12.920355 c 3.38119706,0.417619 6.65007166,1.706376 9.23954246,2.980621 0,0.622176 -0.07398,-10.2117676 -0.07398,-10.5850424 z"
id="path37"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.70963186;stroke-linejoin:round"
d="M 9.6596115,5.2865056 C 12.083236,3.1557432 15.360122,2.2885383 19.136304,1.3375403 c -0.284772,4.9489073 -0.102455,7.511336 -0.07213,11.4946857 -3.418311,0.03634 -6.963207,1.559699 -9.3305721,3.068595 0,-0.02308 -0.07398,-10.2410411 -0.07398,-10.6143154 z"
id="path39"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.14192638"
d="m 17.62063,3.1873399 c 0,0 -3.815638,0.8838087 -6.848929,2.9595554"
id="path49"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 17.394036,4.8012488 c 0,0 -3.511103,0.5173178 -6.620968,2.5038816"
id="path51"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 17.272918,6.2311532 c 0,0 -3.27395,0.5096669 -6.50024,2.3370702"
id="path53"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 17.274877,7.6866141 c 0,0 -3.172573,0.2684782 -6.502004,2.2116124"
id="path55"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 17.231902,8.9007628 c -0.03698,0.00743 -2.876823,0.5090318 -6.459029,2.2830152"
id="path57"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 17.392078,10.085174 c -0.03698,0.0074 -3.083882,0.550216 -6.6194,2.401967"
id="path59"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 17.440915,11.350822 c 0,0 -3.334509,0.62075 -6.668628,2.435112"
id="path61"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891001999999996;fill:#ffffff;fill-rule:evenodd;stroke:#b30808;stroke-width:0.66616368000000004;stroke-linejoin:round;stroke-opacity:1"
d="M 9.6857877,5.2775219 C 11.821476,2.9262027 14.709431,1.7611526 18.037104,0.46661814 17.786146,5.4413914 17.946825,7.9872467 17.973521,11.967809 c -3.012389,0.347254 -6.136318,2.193026 -8.2225848,3.917213 0,-0.02307 -0.065194,-10.2342253 -0.065194,-10.6076548 z"
id="path63"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 16.702517,2.4541111 c 0,0 -3.362637,1.230861 -6.03552,3.5825057"
id="path65"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 16.395829,5.5296759 c 0,0 -2.885024,0.8074347 -5.728246,2.9282685"
id="path67"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 16.358716,8.2031579 c -0.0326,0.010797 -2.535167,0.7706957 -5.691915,2.8704961"
id="path69"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 16.544293,10.634088 c 0,0 -2.938551,0.924033 -5.87671,3.041646"
id="path71"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 2.7583286,3.1579116 c 0,0 3.36596,0.8838087 6.041577,2.9595557"
id="path73"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 2.9593364,4.7719751 c 0,0 3.0971682,0.5173182 5.8403743,2.503882"
id="path75"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.0659941,6.2018799 c 0,0 2.8879549,0.5096669 5.7339115,2.3370702"
id="path77"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.0642361,7.6573407 c 0,0 2.7984881,0.2684787 5.7354746,2.211612"
id="path79"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.1023281,8.8714891 c 0.032629,0.00743 2.5377046,0.5090322 5.6975775,2.2830149"
id="path81"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 2.9607041,10.055745 c 0.032629,0.0074 2.7203506,0.550216 5.8392015,2.401967"
id="path83"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 2.9173379,11.321502 c 0,0 2.9412841,0.620751 5.8825677,2.435112"
id="path85"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891001999999996;fill:#ffffff;fill-rule:evenodd;stroke:#b30808;stroke-width:0.62566995999999997;stroke-linejoin:round;stroke-opacity:1"
d="M 9.7584553,5.2482486 C 7.8745648,2.8969293 5.3270927,1.7318792 2.3916691,0.43734473 2.6130319,5.4121176 2.4713087,7.9579739 2.4477345,11.938536 c 2.6572551,0.347238 5.4129623,2.193026 7.2532919,3.917213 0,-0.02308 0.057508,-10.2342256 0.057508,-10.6076551 z"
id="path87"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.5691981,2.4248377 c 0,0 2.966093,1.2308611 5.3240818,3.5825058"
id="path89"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.8401392,5.5004025 c 0,0 2.544933,0.8074348 5.0529453,2.9282686"
id="path91"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.8723709,8.1738841 c 0.028751,0.010797 2.2362901,0.7706957 5.020909,2.8704959"
id="path93"
inkscape:connector-curvature="0" />
<path
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 3.7092593,10.604815 c 0,0 2.5920103,0.924032 5.1840206,3.041645"
id="path95"
inkscape:connector-curvature="0" />
</g>
<g
id="g3956"
transform="translate(-0.07190883,-0.14381829)">
<g
id="g221"
transform="matrix(0.60926793,0,0,0.60018523,-14.556018,11.034576)">
<path
id="path223"
d="m 25.961,2.2795 c -0.50881,0 -0.91843,0.40232 -0.91843,0.90206 v 20.226 c 0,0.49974 0.40962,0.90206 0.91843,0.90206 h 19.775 c 0.50881,0 0.91843,-0.40232 0.91843,-0.90206 v -18.154 l -3.0423,-2.974 h -17.651 z"
style="fill:#7f7f7f;fill-rule:evenodd;stroke-width:1pt;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0" />
<path
id="path225"
d="m 29.647,2.3339 v 5.6378 c 0,0.57606 0.51531,1.0398 1.1554,1.0398 h 7.7628 c 0.64009,-4e-7 1.1554,-0.46376 1.1554,-1.0398 V 2.3339 h -10.074 z"
style="fill:#bfbfbf;fill-rule:evenodd;stroke:#333333;stroke-width:1.34249997"
inkscape:connector-curvature="0" />
<rect
id="rect227"
x="31.209"
y="3.7319"
width="2.8554001"
height="3.8492999"
rx="0.60650003"
style="fill:#7f7f7f;fill-rule:evenodd;stroke:#333333;stroke-width:0.80549997" />
<path
id="path229"
d="m 25.961,2.2795 c -0.50881,0 -0.91843,0.40232 -0.91843,0.90206 v 20.226 c 0,0.49974 0.40962,0.90206 0.91843,0.90206 h 19.775 c 0.50881,0 0.91843,-0.40232 0.91843,-0.90206 v -18.154 l -3.0423,-2.974 h -17.651 z"
style="fill:none;stroke:#333333;stroke-width:1.34249997;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0" />
<rect
id="rect231"
x="26.805"
y="10.573"
width="18.097"
height="12.181"
rx="0.88217002"
style="fill:#d9d9d9;fill-opacity:0.75;fill-rule:evenodd;stroke:#333333;stroke-width:0.80549997;stroke-linecap:round;stroke-linejoin:round" />
</g>
</g>
<g
id="g3928"
transform="translate(-16.682927,23.730025)">
<path
style="opacity:0.86666667;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.70963186;stroke-linejoin:round"
d="m 32.922582,-13.273155 c -0.943938,-1.485586 -6.571153,-3.437843 -9.163554,-3.831562 0.136808,4.62628 0.139438,7.1594355 -0.0019,11.4359835 3.381197,0.4176189 6.650071,1.7063755 9.239542,2.9806206 0,0.6221756 -0.07398,-10.2117681 -0.07398,-10.5850421 z"
id="path37-7"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.70963186;stroke-linejoin:round"
d="m 32.922582,-13.302583 c 2.423624,-2.130763 5.70051,-2.997968 9.476692,-3.948966 -0.284772,4.948908 -0.102455,7.5113364 -0.07213,11.4946857 -3.418311,0.036338 -6.963207,1.5596995 -9.330572,3.0685957 0,-0.023077 -0.07398,-10.2410414 -0.07398,-10.6143154 z"
id="path39-4"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.14192638"
d="m 40.8836,-15.401749 c 0,0 -3.815638,0.883809 -6.848929,2.959555"
id="path49-0"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 40.657006,-13.78784 c 0,0 -3.511102,0.517318 -6.620967,2.503882"
id="path51-9"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 40.535889,-12.357936 c 0,0 -3.273951,0.509667 -6.500241,2.33707"
id="path53-4"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 40.537847,-10.902475 c 0,0 -3.172573,0.268478 -6.502004,2.2116126"
id="path55-8"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 40.494872,-9.6883261 c -0.03698,0.00743 -2.876823,0.5090318 -6.459029,2.2830147"
id="path57-8"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 40.655048,-8.5039152 c -0.03698,0.00743 -3.083882,0.5502158 -6.6194,2.4019671"
id="path59-2"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 40.703885,-7.2382672 c 0,0 -3.334508,0.6207506 -6.668628,2.4351127"
id="path61-4"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:#ffffff;fill-rule:evenodd;stroke:#22a51e;stroke-width:0.66616368;stroke-linejoin:round;stroke-opacity:0.99019614"
d="m 32.948758,-13.311567 c 2.135688,-2.351319 5.023643,-3.516369 8.351316,-4.810904 -0.250958,4.974773 -0.09028,7.520629 -0.06358,11.5011909 -3.012389,0.3472537 -6.136318,2.1930263 -8.222585,3.9172135 0,-0.023073 -0.06519,-10.2342254 -0.06519,-10.6076554 z"
id="path63-5"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 39.965487,-16.134978 c 0,0 -3.362637,1.230861 -6.03552,3.582506"
id="path65-5"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 39.658799,-13.059413 c 0,0 -2.885024,0.807435 -5.728246,2.928268"
id="path67-1"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 39.621686,-10.385931 c -0.0326,0.0108 -2.535166,0.7706957 -5.691914,2.8704963"
id="path69-7"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 39.807263,-7.9550005 c 0,0 -2.938551,0.9240323 -5.87671,3.0416451"
id="path71-1"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.021299,-15.431177 c 0,0 3.36596,0.883808 6.041577,2.959555"
id="path73-1"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.222307,-13.817114 c 0,0 3.097168,0.517318 5.840374,2.503882"
id="path75-5"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.328964,-12.387209 c 0,0 2.887955,0.509667 5.733912,2.33707"
id="path77-2"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.327206,-10.931748 c 0,0 2.798488,0.268478 5.735475,2.2116118"
id="path79-7"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.365298,-9.7175999 c 0.03263,0.00743 2.537705,0.5090323 5.697578,2.2830152"
id="path81-6"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.223674,-8.5333436 c 0.03263,0.00743 2.720351,0.5502158 5.839202,2.401967"
id="path83-1"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.180308,-7.2675868 c 0,0 2.941284,0.6207511 5.882568,2.4351123"
id="path85-4"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:#ffffff;fill-rule:evenodd;stroke:#22a51e;stroke-width:0.62566996;stroke-linejoin:round;stroke-opacity:0.99019614"
d="m 33.021426,-13.34084 c -1.883891,-2.35132 -4.431363,-3.51637 -7.366787,-4.810904 0.221363,4.974773 0.07964,7.520629 0.05607,11.5011906 2.657255,0.3472383 5.412962,2.1930263 7.253292,3.917214 0,-0.023077 0.05751,-10.2342266 0.05751,-10.6076556 z"
id="path87-2"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.832168,-16.164251 c 0,0 2.966093,1.230861 5.324082,3.582506"
id="path89-3"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 27.103109,-13.088686 c 0,0 2.544933,0.807434 5.052946,2.928268"
id="path91-2"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 27.135341,-10.415205 c 0.02875,0.0108 2.23629,0.7706959 5.020909,2.8704965"
id="path93-2"
inkscape:connector-curvature="0" />
<path
style="opacity:0.86666667;fill:none;stroke:#000000;stroke-width:0.2174277"
d="m 26.97223,-7.9842742 c 0,0 2.59201,0.9240326 5.18402,3.041645"
id="path95-1"
inkscape:connector-curvature="0" />
</g>
</svg>
......@@ -175,7 +175,7 @@ void HOTKEYS_EDITOR_DIALOG::OnClickOnCell( wxGridEvent& event )
/** OnRightClickOnCell
* If a cell is selected, display a list of keys for selection
* The list is restricted to keys that cannot be entered:
* tab, home ... because these keys have special functions in dialogs
* tab, home, return ... because these keys have special functions in dialogs
*/
void HOTKEYS_EDITOR_DIALOG::OnRightClickOnCell( wxGridEvent& event )
{
......@@ -186,8 +186,8 @@ void HOTKEYS_EDITOR_DIALOG::OnRightClickOnCell( wxGridEvent& event )
return;
// Do not translate these key names. They are internally used.
//ee hotkeys_basic.cpp
#define C_COUNT 8
// See hotkeys_basic.cpp
#define C_COUNT 9
wxString choices[C_COUNT] =
{
wxT("End")
......@@ -198,6 +198,7 @@ void HOTKEYS_EDITOR_DIALOG::OnRightClickOnCell( wxGridEvent& event )
wxT("Space"),
wxT("Ctrl+Space"),
wxT("Alt+Space"),
wxT("Return")
};
wxString keyname = wxGetSingleChoice( _( "Special keys only. For others keys, use keyboard" ),
......
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2014 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
*/
#include <hotkey_grid_table.h>
/*
......
......@@ -133,6 +133,8 @@ static struct hotkey_name_descr s_Hotkey_Name_List[] =
{ wxT( "Left" ), WXK_LEFT },
{ wxT( "Right" ), WXK_RIGHT },
{ wxT( "Return" ), WXK_RETURN },
{ wxT( "Space" ), WXK_SPACE },
// Do not change this line: end of list
......
......@@ -164,7 +164,7 @@ static const wxString dso_full_path( const wxString& aAbsoluteArgv0 )
// in them. They are basically spin-offs from what was once a top process module.
// That may not make linux package maintainers happy, but that is not my job.
// Get over it. KiCad is not a trivial suite, and multiple platforms come
// into play, not merely linux. For starters they will use extension ".kicad",
// into play, not merely linux. For starters they will use extension ".kiface",
// but later in time morph to ".so". They are not purely libraries, else they
// would begin with "lib" in basename. Like I said, get over it, we're serving
// too many masters here: python, windows, linux, OSX, multiple versions of wx...
......@@ -338,7 +338,8 @@ bool PGM_SINGLE_TOP::OnPgmInit( wxApp* aWxApp )
// KIFACE::CreateWindow() is a virtual so we don't need to link to it.
// Remember its in the *.kiface DSO.
#if 0
// this pulls in EDA_DRAW_FRAME type info, which we don't want in single_top
// this pulls in EDA_DRAW_FRAME type info, which we don't want in
// the single_top link image.
KIWAY_PLAYER* frame = dynamic_cast<KIWAY_PLAYER*>( kiface->CreateWindow(
NULL, TOP_FRAME, &kiway, KFCTL_STANDALONE ) );
#else
......@@ -375,9 +376,9 @@ bool PGM_SINGLE_TOP::OnPgmInit( wxApp* aWxApp )
if( argc == 2 )
{
#if defined(PGM_DATA_FILE_EXT)
// PGM_DATA_FILE_EXT is different for each compile, it may come
// from CMake on the compiler command line, often does not.
// This facillity is mostly useful only for those program modules
// PGM_DATA_FILE_EXT, if present, may be different for each compile,
// it may come from CMake on the compiler command line, but often does not.
// This facillity is mostly useful for those program modules
// supporting a single argv[1].
if( !argv1.GetExt() )
argv1.SetExt( wxT( PGM_DATA_FILE_EXT ) );
......@@ -413,11 +414,13 @@ bool PGM_SINGLE_TOP::OnPgmInit( wxApp* aWxApp )
}
else
{
/* The lean single_top program launcher has no access program settings,
else it would not be lean. That kind of functionality is in the
KIFACE now, but it cannot assume that it is the only KIFACE in memory.
So this looks like a dead concept here, or an expensive one in terms
of code size.
/*
The lean single_top program launcher has no access to program
settings, for if it did, it would not be lean. That kind of
functionality is in the KIFACE now, but it cannot assume that it is
the only KIFACE in memory. So this looks like a dead concept here,
or an expensive one in terms of code size.
wxString dir;
......@@ -455,8 +458,8 @@ void PGM_SINGLE_TOP::MacOpenFile( const wxString& aFileName )
if( filename.FileExists() )
{
#if 0
// this pulls in EDA_DRAW_FRAME type info, which we don't want in single_top
// link image.
// this pulls in EDA_DRAW_FRAME type info, which we don't want in
// the single_top link image.
KIWAY_PLAYER* frame = dynamic_cast<KIWAY_PLAYER*>( App().GetTopWindow() );
#else
KIWAY_PLAYER* frame = (KIWAY_PLAYER*) App().GetTopWindow();
......
set( MAKE_LINK_MAPS true )
# the map generation creates on Windows/gcc a lot of useless warnings
# so disable it on windows
if( WIN32 AND NOT CMAKE_CROSSCOMPILING )
set( MAKE_LINK_MAPS false )
else()
set( MAKE_LINK_MAPS true )
endif()
add_definitions( -DCVPCB )
......
set( MAKE_LINK_MAPS true )
# the map generation creates on Windows/gcc a lot of useless warnings
# so disable it on windows
if( WIN32 AND NOT CMAKE_CROSSCOMPILING )
set( MAKE_LINK_MAPS false )
else()
set( MAKE_LINK_MAPS true )
endif()
add_definitions( -DEESCHEMA )
......
......@@ -248,7 +248,6 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
SCH_SCREEN* screen;
wxString fullFileName( aFileSet[0] );
wxString msg;
bool libCacheExist = false;
SCH_SCREENS screenList;
for( screen = screenList.GetFirst(); screen != NULL; screen = screenList.GetNext() )
......@@ -384,9 +383,12 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
}
// load the project.
libCacheExist = LoadCacheLibrary( g_RootSheet->GetScreen()->GetFileName() );
bool libCacheExist = LoadCacheLibrary( g_RootSheet->GetScreen()->GetFileName() );
g_RootSheet->SetScreen( NULL );
bool diag = g_RootSheet->Load( this );
SetScreen( m_CurrentSheet->LastScreen() );
UpdateFileHistory( g_RootSheet->GetScreen()->GetFileName() );
......@@ -397,6 +399,9 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
SetSheetNumberAndCount();
m_canvas->Refresh( true );
(void) libCacheExist;
(void) diag;
// return diag;
return true; // do not close Eeschema if the file if not found:
// we may have to create a new schematic file.
......
......@@ -128,6 +128,10 @@ static EDA_HOTKEY HkRedo( wxT( "Redo" ), HK_REDO, GR_KB_SHIFT + GR_KB_CTRL + 'Z'
(int) wxID_REDO );
#endif
// mouse click command:
static EDA_HOTKEY HkMouseLeftClick( wxT( "Mouse Left Click" ), HK_LEFT_CLICK, WXK_RETURN, 0 );
static EDA_HOTKEY HkMouseLeftDClick( wxT( "Mouse Left DClick" ), HK_LEFT_DCLICK, WXK_END, 0 );
// Schematic editor
static EDA_HOTKEY HkBeginWire( wxT( "Begin Wire" ), HK_BEGIN_WIRE, 'W', ID_WIRE_BUTT );
static EDA_HOTKEY HkBeginBus( wxT( "Begin Bus" ), HK_BEGIN_BUS, 'B', ID_BUS_BUTT );
......@@ -191,6 +195,8 @@ static EDA_HOTKEY HkDelete( wxT( "Delete Item" ), HK_DELETE, WXK_DELETE );
static EDA_HOTKEY HkFindItem( wxT( "Find Item" ), HK_FIND_ITEM, 'F' + GR_KB_CTRL, ID_FIND_ITEMS );
static EDA_HOTKEY HkFindNextItem( wxT( "Find Next Item" ), HK_FIND_NEXT_ITEM, WXK_F5,
wxEVT_COMMAND_FIND );
static EDA_HOTKEY HkFindReplace( wxT( "Find and Replace" ), HK_FIND_REPLACE,
'F' + GR_KB_CTRL + GR_KB_ALT, wxID_REPLACE );
static EDA_HOTKEY HkFindNextDrcMarker( wxT( "Find Next DRC Marker" ), HK_FIND_NEXT_DRC_MARKER,
WXK_F5 + GR_KB_SHIFT, EVT_COMMAND_FIND_DRC_MARKER );
......@@ -220,6 +226,8 @@ EDA_HOTKEY* s_Common_Hotkey_List[] =
&HkDrag,
&HkUndo,
&HkRedo,
&HkMouseLeftClick,
&HkMouseLeftDClick,
NULL
};
......@@ -231,6 +239,7 @@ EDA_HOTKEY* s_Schematic_Hotkey_List[] =
&HkFindItem,
&HkFindNextItem,
&HkFindNextDrcMarker,
&HkFindReplace,
&HkInsert,
&HkMove2Drag,
&HkSaveBlock,
......@@ -361,6 +370,15 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition,
GetScreen()->m_O_Curseur = GetCrossHairPosition();
break;
case HK_LEFT_CLICK:
OnLeftClick( aDC, aPosition );
break;
case HK_LEFT_DCLICK: // Simulate a double left click: generate 2 events
OnLeftClick( aDC, aPosition );
OnLeftDClick( aDC, aPosition );
break;
case HK_ZOOM_IN:
case HK_ZOOM_OUT:
case HK_ZOOM_REDRAW:
......@@ -395,6 +413,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition,
case HK_UNDO:
case HK_REDO:
case HK_FIND_ITEM:
case HK_FIND_REPLACE:
if( notBusy )
{
cmd.SetId( hotKey->m_IdMenuEvent );
......@@ -558,6 +577,15 @@ void LIB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition,
GetScreen()->m_O_Curseur = GetCrossHairPosition();
break;
case HK_LEFT_CLICK:
OnLeftClick( aDC, aPosition );
break;
case HK_LEFT_DCLICK: // Simulate a double left click: generate 2 events
OnLeftClick( aDC, aPosition );
OnLeftDClick( aDC, aPosition );
break;
case HK_ZOOM_IN:
case HK_ZOOM_OUT:
case HK_ZOOM_REDRAW:
......
......@@ -13,6 +13,7 @@ enum hotkey_id_commnand {
HK_FIND_NEXT_ITEM = HK_COMMON_END,
HK_FIND_NEXT_DRC_MARKER,
HK_FIND_ITEM,
HK_FIND_REPLACE,
HK_DELETE,
HK_REPEAT_LAST,
HK_LIBEDIT_MOVE_GRAPHIC_ITEM,
......@@ -48,7 +49,9 @@ enum hotkey_id_commnand {
HK_ADD_NOCONN_FLAG,
HK_SAVE_LIB,
HK_SAVE_SCH,
HK_LOAD_SCH
HK_LOAD_SCH,
HK_LEFT_CLICK,
HK_LEFT_DCLICK
};
// List of hotkey descriptors for Eeschema
......
......@@ -213,7 +213,9 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
AddMenuItem( editMenu, ID_FIND_ITEMS, text, HELP_FIND, KiBitmap( find_xpm ) );
// Find/Replace
AddMenuItem( editMenu, wxID_REPLACE, _( "Find and Re&place\tCtrl+Shift+F" ), HELP_REPLACE,
text = AddHotkeyName( _( "Find and Re&place" ), s_Schematic_Hokeys_Descr,
HK_FIND_REPLACE );
AddMenuItem( editMenu, wxID_REPLACE, text, HELP_REPLACE,
KiBitmap( find_replace_xpm ) );
// Import footprint association from the CvPcb cmp file:
......
set( MAKE_LINK_MAPS true )
# the map generation creates on Windows/gcc a lot of useless warnings
# so disable it on windows
if( WIN32 AND NOT CMAKE_CROSSCOMPILING )
set( MAKE_LINK_MAPS false )
else()
set( MAKE_LINK_MAPS true )
endif()
add_definitions(-DGERBVIEW)
......
......@@ -103,6 +103,7 @@ EXTERN_BITMAP( copper_layers_setup_xpm )
EXTERN_BITMAP( copyblock_xpm )
EXTERN_BITMAP( copycomponent_xpm )
EXTERN_BITMAP( copy_button_xpm )
EXTERN_BITMAP( copy_library_xpm )
EXTERN_BITMAP( create_cmp_file_xpm )
EXTERN_BITMAP( cursor_shape_xpm )
EXTERN_BITMAP( cursor_xpm )
......
set( MAKE_LINK_MAPS true )
# the map generation creates on Windows/gcc a lot of useless warnings
# so disable it on windows
if( WIN32 AND NOT CMAKE_CROSSCOMPILING )
set( MAKE_LINK_MAPS false )
else()
set( MAKE_LINK_MAPS true )
endif()
add_definitions(-DPL_EDITOR)
......
......@@ -55,8 +55,12 @@
* and see this list for some ascii keys (space ...)
*/
/* local variables */
/* Hotkey list: */
// Hotkey list:
// mouse click command:
static EDA_HOTKEY HkMouseLeftClick( wxT( "Mouse Left Click" ), HK_LEFT_CLICK, WXK_RETURN, 0 );
static EDA_HOTKEY HkMouseLeftDClick( wxT( "Mouse Left DClick" ), HK_LEFT_DCLICK, WXK_END, 0 );
static EDA_HOTKEY HkResetLocalCoord( wxT( "Reset Local Coordinates" ),
HK_RESET_LOCAL_COORD, ' ' );
static EDA_HOTKEY HkZoomAuto( wxT( "Zoom Auto" ), HK_ZOOM_AUTO, WXK_HOME, ID_ZOOM_PAGE );
......@@ -67,6 +71,7 @@ static EDA_HOTKEY HkZoomOut( wxT( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2, ID_POPUP
static EDA_HOTKEY HkZoomIn( wxT( "Zoom In" ), HK_ZOOM_IN, WXK_F1, ID_POPUP_ZOOM_IN );
static EDA_HOTKEY HkHelp( wxT( "Help (this window)" ), HK_HELP, '?' );
static EDA_HOTKEY HkMoveItem( wxT( "Move Item" ), HK_MOVE_ITEM, 'M', ID_POPUP_ITEM_MOVE );
static EDA_HOTKEY HkPlaceItem( wxT( "Place Item" ), HK_PLACE_ITEM, 'P', ID_POPUP_ITEM_PLACE );
static EDA_HOTKEY HkMoveStartPoint( wxT( "Move Start Point" ), HK_MOVE_START_POINT, 'S',
ID_POPUP_ITEM_MOVE_START_POINT );
static EDA_HOTKEY HkMoveEndPoint( wxT( "Move End Point" ), HK_MOVE_END_POINT, 'E',
......@@ -85,13 +90,17 @@ EDA_HOTKEY* s_Common_Hotkey_List[] =
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkZoomAuto, &HkResetLocalCoord,
&HkUndo, &HkRedo,
&HkMouseLeftClick,
&HkMouseLeftDClick,
NULL
};
EDA_HOTKEY* s_PlEditor_Hotkey_List[] =
{
&HkMoveItem, &HkMoveStartPoint,
&HkMoveEndPoint, &HkDeleteItem,
&HkMoveEndPoint,
&HkPlaceItem,
&HkDeleteItem,
NULL
};
......@@ -142,6 +151,15 @@ void PL_EDITOR_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode,
case HK_NOT_FOUND:
return;
case HK_LEFT_CLICK:
OnLeftClick( aDC, aPosition );
break;
case HK_LEFT_DCLICK: // Simulate a double left click: generate 2 events
OnLeftClick( aDC, aPosition );
OnLeftDClick( aDC, aPosition );
break;
case HK_HELP: // Display Current hotkey list
DisplayHotkeyList( this, s_PlEditor_Hokeys_Descr );
break;
......@@ -208,6 +226,14 @@ void PL_EDITOR_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode,
GetEventHandler()->ProcessEvent( cmd );
break;
case HK_PLACE_ITEM:
if( busy )
{
cmd.SetId( HK_Descr->m_IdMenuEvent );
GetEventHandler()->ProcessEvent( cmd );
}
break;
default:
wxMessageBox( wxT("Unknown hotkey") );
return;
......
......@@ -39,7 +39,10 @@ enum hotkey_id_commnand {
HK_MOVE_ITEM,
HK_MOVE_START_POINT,
HK_MOVE_END_POINT,
HK_DELETE_ITEM
HK_PLACE_ITEM,
HK_DELETE_ITEM,
HK_LEFT_CLICK,
HK_LEFT_DCLICK
};
// List of hotkey descriptors for PlEditor.
......
......@@ -108,7 +108,9 @@ bool PL_EDITOR_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* aPopMenu )
}
else // An item is currently in edit
{
AddMenuItem( aPopMenu, ID_POPUP_ITEM_PLACE, _( "Place" ),
msg = AddHotkeyName( _( "Place Item" ), s_PlEditor_Hokeys_Descr,
HK_PLACE_ITEM );
AddMenuItem( aPopMenu, ID_POPUP_ITEM_PLACE, msg,
KiBitmap( move_xpm ) );
AddMenuItem( aPopMenu, ID_POPUP_ITEM_PLACE_CANCEL, _( "Cancel" ),
KiBitmap( cancel_xpm ) );
......
set( MAKE_LINK_MAPS true )
# the map generation creates on Windows/gcc a lot of useless warnings
# so disable it on windows
if( WIN32 AND NOT CMAKE_CROSSCOMPILING )
set( MAKE_LINK_MAPS false )
else()
set( MAKE_LINK_MAPS true )
endif()
add_definitions( -DPCBNEW )
add_subdirectory(router)
......@@ -535,6 +541,7 @@ if( USE_KIWAY_DLLS )
${PCBNEW_SCRIPTING_SRCS}
# ${PCBNEW_RESOURCES}
)
set_target_properties( pcbnew_kiface PROPERTIES
# Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
# _pcbnew.so, _pcbnew.dll, or _pcbnew.kiface
......@@ -547,6 +554,7 @@ if( USE_KIWAY_DLLS )
COMPILE_FLAGS ${OpenMP_CXX_FLAGS}
)
endif()
target_link_libraries( pcbnew_kiface
3d-viewer
pcbcommon
......
......@@ -109,9 +109,7 @@ int BOARD_CONNECTED_ITEM::GetClearance( BOARD_CONNECTED_ITEM* aItem ) const
}
else
{
#ifdef DEBUG
wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetClearance():NULL netclass,type %d"), Type() );
#endif
DBG(printf( "%s: NULL netclass,type %d", __func__, Type() );)
}
return 0;
......@@ -129,9 +127,7 @@ NETCLASS* BOARD_CONNECTED_ITEM::GetNetClass() const
if( board == NULL ) // Should not occur
{
#ifdef DEBUG
wxLogWarning( wxT("BOARD_CONNECTED_ITEM::GetNetClass():NULL board,type %d"), Type() );
#endif
DBG(printf( "%s: NULL board,type %d", __func__, Type() );)
return NULL;
}
......@@ -142,12 +138,7 @@ NETCLASS* BOARD_CONNECTED_ITEM::GetNetClass() const
{
netclass = net->GetNetClass();
#ifdef DEBUG
if( netclass == NULL )
{
wxLogWarning( wxT("BOARD_CONNECTED_ITEM::GetNetClass():NULL netclass,type %d"), Type() );
}
#endif
//DBG( if(!netclass) printf( "%s: NULL netclass,type %d", __func__, Type() );)
}
if( netclass )
......
......@@ -29,8 +29,14 @@
* and see this list for some ascii keys (space ...)
*/
/* local variables */
/* Hotkey list: */
// Hotkey list:
// mouse click command:
static EDA_HOTKEY HkMouseLeftClick( wxT( "Mouse Left Click" ),
HK_LEFT_CLICK, WXK_RETURN, 0 );
static EDA_HOTKEY HkMouseLeftDClick( wxT( "Mouse Left DClick" ),
HK_LEFT_DCLICK, WXK_END, 0 );
static EDA_HOTKEY HkSwitch2CopperLayer( wxT( "Switch to Copper layer" ),
HK_SWITCH_LAYER_TO_COPPER, WXK_PAGEDOWN );
static EDA_HOTKEY HkSwitch2ComponentLayer( wxT( "Switch to Component layer" ),
......@@ -70,7 +76,6 @@ static EDA_HOTKEY HkSelLayerAndAddBlindBuriedVia( wxT( "Sel Layer and Add Blind/
static EDA_HOTKEY HkSwitchTrackPosture( wxT( "Switch Track Posture" ), HK_SWITCH_TRACK_POSTURE, '/' );
static EDA_HOTKEY HkDragTrackKeepSlope( wxT( "Drag track keep slope" ), HK_DRAG_TRACK_KEEP_SLOPE, 'D' );
static EDA_HOTKEY HkPlaceItem( wxT( "Place Item" ), HK_PLACE_ITEM, 'P' );
static EDA_HOTKEY HkEndTrack( wxT( "End Track" ), HK_END_TRACK, WXK_END );
static EDA_HOTKEY HkEditBoardItem( wxT( "Edit Item" ), HK_EDIT_ITEM, 'E' );
static EDA_HOTKEY HkFlipItem( wxT( "Flip Item" ), HK_FLIP_ITEM, 'F' );
static EDA_HOTKEY HkRotateItem( wxT( "Rotate Item" ), HK_ROTATE_ITEM, 'R' );
......@@ -211,6 +216,8 @@ EDA_HOTKEY* common_Hotkey_List[] =
&HkZoomRedraw, &HkZoomCenter, &HkZoomAuto,
&HkSwitchUnits, &HkResetLocalCoord, &HkSetGridOrigin, &HkResetGridOrigin,
&HkUndo, &HkRedo,
&HkMouseLeftClick,
&HkMouseLeftDClick,
NULL
};
......@@ -225,7 +232,8 @@ EDA_HOTKEY* board_edit_Hotkey_List[] =
&HkSwitchTrackPosture,
&HkDragTrackKeepSlope,
&HkPlaceItem, &HkCopyItem,
&HkEndTrack, &HkMoveItem, &HkFlipItem,
&HkMoveItem,
&HkFlipItem,
&HkRotateItem, &HkDragFootprint,
&HkGetAndMoveFootprint, &HkLock_Unlock_Footprint, &HkSavefile, &HkSavefileAs,
&HkLoadfile, &HkFindItem, &HkEditBoardItem,
......
......@@ -28,7 +28,6 @@ enum hotkey_id_commnand {
HK_ADD_MICROVIA,
HK_SWITCH_TRACK_POSTURE,
HK_DRAG_TRACK_KEEP_SLOPE,
HK_END_TRACK,
HK_SAVE_BOARD,
HK_SAVE_BOARD_AS,
HK_LOAD_BOARD,
......@@ -90,6 +89,8 @@ enum hotkey_id_commnand {
HK_CANVAS_DEFAULT,
HK_CANVAS_OPENGL,
HK_CANVAS_CAIRO,
HK_LEFT_CLICK,
HK_LEFT_DCLICK
};
// Full list of hotkey descriptors for board editor and footprint editor
......
......@@ -160,6 +160,15 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
return;
break;
case HK_LEFT_CLICK:
OnLeftClick( aDC, aPosition );
break;
case HK_LEFT_DCLICK: // Simulate a double left click: generate 2 events
OnLeftClick( aDC, aPosition );
OnLeftDClick( aDC, aPosition );
break;
case HK_RECORD_MACROS_0:
case HK_RECORD_MACROS_1:
case HK_RECORD_MACROS_2:
......@@ -395,16 +404,6 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
break;
case HK_END_TRACK:
if( itemCurrentlyEdited && GetCurItem()->IsTrack() && GetCurItem()->IsNew() )
{
// A new track is in progress: call to End_Route()
m_canvas->MoveCursorToCrossHair();
End_Route( (TRACK*) GetCurItem(), aDC );
}
break;
case HK_GET_AND_MOVE_FOOTPRINT:
if( !itemCurrentlyEdited )
evt_type = ID_POPUP_PCB_GET_AND_MOVE_MODULE_REQUEST;
......
......@@ -58,6 +58,15 @@ void FOOTPRINT_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPos
GetScreen()->m_O_Curseur = GetCrossHairPosition();
break;
case HK_LEFT_CLICK:
OnLeftClick( aDC, aPosition );
break;
case HK_LEFT_DCLICK: // Simulate a double left click: generate 2 events
OnLeftClick( aDC, aPosition );
OnLeftDClick( aDC, aPosition );
break;
case HK_SET_GRID_ORIGIN:
SetGridOrigin( GetCrossHairPosition() );
m_canvas->Refresh();
......
......@@ -104,7 +104,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateMenuBar()
AddMenuItem( fileMenu, ID_MODEDIT_SAVE_LIBRARY_AS,
_( "Save Current Library As..." ),
_( "Save entire current library under a new name." ),
wxNullBitmap );
KiBitmap( copy_library_xpm ) );
// Save module
text = AddHotkeyName( _( "&Save Module in Active Library" ),
......
......@@ -410,7 +410,9 @@ void FOOTPRINT_EDIT_FRAME::OnUpdateVerticalToolbar( wxUpdateUIEvent& aEvent )
void FOOTPRINT_EDIT_FRAME::OnUpdateLibSelected( wxUpdateUIEvent& aEvent )
{
aEvent.Enable( getLibPath() != wxEmptyString );
bool enable = getLibPath() != wxEmptyString;
aEvent.Enable( enable );
GetMenuBar()->Enable( ID_MODEDIT_SAVE_LIBRARY_AS, enable );
}
......
......@@ -271,10 +271,31 @@ const wxChar* FOOTPRINT_VIEWER_FRAME::GetFootprintViewerFrameName()
}
FOOTPRINT_VIEWER_FRAME* FOOTPRINT_VIEWER_FRAME::GetActiveFootprintViewer( const wxWindow* aParent )
FOOTPRINT_VIEWER_FRAME* FOOTPRINT_VIEWER_FRAME::GetActiveFootprintViewer( const KIWAY_PLAYER* aParent )
{
// top_of_project!
wxASSERT( dynamic_cast<const PCB_EDIT_FRAME*>( aParent ) );
wxASSERT( aParent );
// We search only within the current project, and do so by limiting
// the search scope to a wxWindow hierarchy subset. Find the top most
// KIWAY_PLAYER which is part of this PROJECT by matching its KIWAY* to the
// most immediate parent's.
// NOTE: an open FOOTPRINT_VIEWER_FRAME may have either the PCB_EDIT_FRAME
// or the FOOTPRINT_EDIT_FRAME as parent.
KIWAY* kiway = &aParent->Kiway();
wxWindow* frame;
while( (frame = aParent->GetParent()) != NULL )
{
// will go NULL when we reach a non-KIWAY_PLAYER
KIWAY_PLAYER* kwp = dynamic_cast<KIWAY_PLAYER*>( frame );
if( kwp && &kwp->Kiway() == kiway )
aParent = kwp;
else
break;
}
return (FOOTPRINT_VIEWER_FRAME*) wxWindow::FindWindowByName(
GetFootprintViewerFrameName(), aParent );
......@@ -424,7 +445,7 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event )
{
GetBoard()->Add( loadFootprint( id ) );
}
catch( IO_ERROR ioe )
catch( const IO_ERROR& ioe )
{
wxString msg;
msg.Printf( _( "Could not load footprint \"%s\" from library \"%s\".\n\n"
......
......@@ -74,10 +74,14 @@ public:
/**
* Function GetActiveFootprintViewer (static)
* @return a reference to the current opened Footprint viewer
* or NULL if no Footprint viewer currently opened
*
* @param aParent the KIWAY_PLAYER which is the parent of the calling wxWindow.
* This is used to traverse the window hierarchy upwards to the topmost
* KIWAY_PLAYER which is still part of the same project.
*
* @return Any currently opened Footprint viewer or NULL if none.
*/
static FOOTPRINT_VIEWER_FRAME* GetActiveFootprintViewer( const wxWindow* aParent );
static FOOTPRINT_VIEWER_FRAME* GetActiveFootprintViewer( const KIWAY_PLAYER* aParent );
wxString& GetSelectedFootprint( void ) const { return m_selectedFootprintName; }
const wxString GetSelectedLibraryFullName();
......
......@@ -520,7 +520,7 @@ void PCB_EDIT_FRAME::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
{
if( flags & IS_NEW )
{
msg = AddHotkeyName( _( "End Track" ), g_Board_Editor_Hokeys_Descr, HK_END_TRACK );
msg = AddHotkeyName( _( "End Track" ), g_Board_Editor_Hokeys_Descr, HK_LEFT_DCLICK );
AddMenuItem( PopMenu, ID_POPUP_PCB_END_TRACK, msg, KiBitmap( checked_ok_xpm ) );
}
......
#!/bin/bash -e
# Install KiCad from source onto either:
# -> a Ubuntu/Debian/Mint or
# -> a Red Hat
# compatible linux system.
#
# The "install_prerequisites" step is the only "distro dependent" one. That step could be modified
# for other linux distros.
#
# There are 3 package groups in a KiCad install:
# 1) Compiled source code in the form of executable programs.
# 2) User manuals and other documentation typically as *.pdf files.
# 3) a) Schematic parts, b) layout footprints, and c) 3D models for footprints.
#
# To achieve 1) source is checked out from its repo and compiled by this script then executables
# are installed using CMake.
# To achieve 2) documentation is checked out from its repo and installed using CMake.
# TO achieve 3a) and 3c) they are checked out from their repos and installed using CMake.
# To achieve 3b) a global fp-lib-table is put into your home directory which points to
# http://github.com/KiCad. No actual footprints are installed locally, internet access is used
# during program operation to fetch footprints from github as if it was a remote drive in the cloud.
# If you want to install those same KiCad footprints locally, you may run a separate script
# named library-repos-install.sh found in this same directory. That script requires that "git" be on
# your system whereas this script does not. The footprints require some means to download them and
# bzr-git seems not up to the task. wget or curl would also work.
# Since bash is invoked with -e by the first line of this script, all the steps in this script
# must succeed otherwise bash will abort at the first non-zero error code. Therefore any script
# functions must be crafted to anticipate numerous conditions, such that no command fails unless it
# is a serious situation.
# Set where the 3 source trees will go, use a full path
WORKING_TREES=~/kicad_sources
# CMake Options
OPTS="$OPTS -DCMAKE_BUILD_TYPE=Release"
OPTS="$OPTS -DBUILD_GITHUB_PLUGIN=ON"
# Python scripting, uncomment to enable
#OPTS="$OPTS -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON -DKICAD_SCRIPTING_WXPYTHON=ON"
#a connection to https://code.launchpad.net does not request a launchpad account
#but, obviously, you cannot commit anything
REPOS=https://code.launchpad.net
LEGACY_LIB_REPO=$REPOS/~dickelbeck/kicad/library-read-only
SRCS_REPO=$REPOS/~kicad-product-committers/kicad/product
DOCS_REPO=$REPOS/~kicad-developers/kicad/doc
usage()
{
echo ""
echo " usage:"
echo ""
echo "./kicad-install.sh <cmd>"
echo " where <cmd> is one of:"
echo " --install-or-update (does full installation or update.)"
echo " --remove-sources (removes source trees for another attempt.)"
echo " --uninstall-libraries (removes KiCad supplied libraries.)"
echo " --uninstall-kicad (uninstalls all of KiCad but leaves source trees.)"
echo ""
echo "example:"
echo ' $ ./kicad-install.sh --install-or-update'
}
install_prerequisites()
{
# Find a package manager, PM
PM=$( command -v yum || command -v apt-get )
# assume all these Debian, Mint, Ubuntu systems have same prerequisites
if [ "$(expr match "$PM" '.*\(apt-get\)')" == "apt-get" ]; then
#echo "debian compatible system"
sudo apt-get install \
bzr \
bzrtools \
build-essential \
cmake \
cmake-curses-gui \
debhelper \
doxygen \
grep \
libbz2-dev \
libcairo2-dev \
libglew-dev \
libssl-dev \
libwxgtk2.8-dev \
python-wxgtk2.8
# assume all yum systems have same prerequisites
elif [ "$(expr match "$PM" '.*\(yum\)')" == "yum" ]; then
#echo "red hat compatible system"
# Note: if you find this list not to be accurate, please submit a patch:
sudo yum groupinstall "Development Tools"
sudo yum install \
bzr \
bzrtools \
bzip2-libs \
bzip2-devel \
cmake \
cmake-gui \
doxygen \
cairo-devel \
glew-devel \
grep \
openssl-devel \
wxGTK-devel \
wxPython
else
echo
echo "Incompatible System. Neither 'yum' nor 'apt-get' found. Not possible to continue."
echo
exit 1
fi
# ensure bzr name and email are set. No message since bzr prints an excellent diagnostic.
bzr whoami || exit 2
}
rm_build_dir()
{
local dir="$1"
echo "removing directory $dir"
if [ -e "$dir/install_manifest.txt" ]; then
# this file is often created as root, so remove as root
sudo rm "$dir/install_manifest.txt" 2> /dev/null
fi
if [ -d "$dir" ]; then
rm -rf "$dir"
fi
}
cmake_uninstall()
{
# assume caller set the CWD, and is only telling us about it in $1
local dir="$1"
cwd=`pwd`
if [ "$cwd" != "$dir" ]; then
echo "missing dir $dir"
elif [ ! -e install_manifest.txt ]; then
echo
echo "Missing file $dir/install_manifest.txt."
else
echo "uninstalling from $dir"
sudo make uninstall
sudo rm install_manifest.txt
fi
}
# Function set_env_var
# sets an environment variable globally.
set_env_var()
{
local var=$1
local val=$2
if [ -d /etc/profile.d ]; then
if [ ! -e /etc/profile.d/kicad.sh ] || ! grep "$var" /etc/profile.d/kicad.sh >> /dev/null; then
echo
echo "Adding environment variable $var to file /etc/profile.d/kicad.sh"
echo "Please logout and back in after this script completes for environment"
echo "variable to get set into environment."
sudo sh -c "echo export $var=$val >> /etc/profile.d/kicad.sh"
fi
elif [ -e /etc/environment ]; then
if ! grep "$var" /etc/environment >> /dev/null; then
echo
echo "Adding environment variable $var to file /etc/environment"
echo "Please reboot after this script completes for environment variable to get set into environment."
sudo sh -c "echo $var=$val >> /etc/environment"
fi
fi
}
install_or_update()
{
echo "step 1) installing pre-requisites"
install_prerequisites
echo "step 2) make $WORKING_TREES if it does not exist"
if [ ! -d "$WORKING_TREES" ]; then
sudo mkdir -p "$WORKING_TREES"
echo " mark $WORKING_TREES as owned by me"
sudo chown -R `whoami` "$WORKING_TREES"
fi
cd $WORKING_TREES
echo "step 3) checking out the source code from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad.bzr" ]; then
bzr checkout $SRCS_REPO kicad.bzr
echo " source repo to local working tree."
else
cd kicad.bzr
bzr up
echo " local source working tree updated."
cd ../
fi
if [ ! -d "$WORKING_TREES/kicad-lib.bzr" ]; then
bzr checkout $LEGACY_LIB_REPO kicad-lib.bzr
echo ' kicad-lib checked out.'
else
cd kicad-lib.bzr
bzr up
echo ' kicad-lib repo updated.'
cd ../
fi
echo "step 5) checking out the documentation from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad-doc.bzr" ]; then
bzr checkout $DOCS_REPO kicad-doc.bzr
echo " docs checked out."
else
cd kicad-doc.bzr
bzr up
echo " docs working tree updated."
cd ../
fi
echo "step 6) compiling source code..."
cd kicad.bzr
if [ ! -d "build" ]; then
mkdir build && cd build
cmake $OPTS ../
else
cd build
# Although a "make clean" is sometimes needed, more often than not it slows down the update
# more than it is worth. Do it manually if you need to in this directory.
# make clean
fi
make -j4
echo " kicad compiled."
echo "step 7) installing KiCad program files..."
sudo make install
echo " kicad program files installed."
echo "step 8) installing libraries..."
cd ../../kicad-lib.bzr
rm_build_dir build
mkdir build && cd build
cmake ../
sudo make install
echo " kicad-lib.bzr installed."
echo "step 9) as non-root, install user configuration files..."
# install ~/fp-lib-table
make install_github_fp-lib-table
echo " kicad user-configuration files installed."
echo "step 10) installing documentation..."
cd ../../kicad-doc.bzr
rm_build_dir build
mkdir build && cd build
cmake ../
sudo make install
echo " kicad-doc.bzr installed."
echo "step 11) check for environment variables..."
if [ -z "${KIGITHUB}" ]; then
set_env_var KIGITHUB https://github.com/KiCad
fi
echo
echo 'All KiCad "--install-or-update" steps completed, you are up to date.'
echo
}
if [ $# -eq 1 -a "$1" == "--remove-sources" ]; then
echo "deleting $WORKING_TREES"
rm_build_dir "$WORKING_TREES/kicad.bzr/build"
rm_build_dir "$WORKING_TREES/kicad-lib.bzr/build"
rm_build_dir "$WORKING_TREES/kicad-doc.bzr/build"
rm -rf "$WORKING_TREES"
exit
fi
if [ $# -eq 1 -a "$1" == "--install-or-update" ]; then
install_or_update
exit
fi
if [ $# -eq 1 -a "$1" == "--uninstall-libraries" ]; then
cd "$WORKING_TREES/kicad-lib.bzr/build"
cmake_uninstall "$WORKING_TREES/kicad-lib.bzr/build"
exit
fi
if [ $# -eq 1 -a "$1" == "--uninstall-kicad" ]; then
cd "$WORKING_TREES/kicad.bzr/build"
cmake_uninstall "$WORKING_TREES/kicad.bzr/build"
cd "$WORKING_TREES/kicad-lib.bzr/build"
cmake_uninstall "$WORKING_TREES/kicad-lib.bzr/build"
# this may fail since "uninstall" support is a recent feature of this repo:
cd "$WORKING_TREES/kicad-doc.bzr/build"
cmake_uninstall "$WORKING_TREES/kicad-doc.bzr/build"
exit
fi
usage
......@@ -35,13 +35,26 @@
WORKING_TREES=~/kicad_sources
# CMake Options
OPTS="$OPTS -DCMAKE_BUILD_TYPE=Release"
OPTS="$OPTS -DBUILD_GITHUB_PLUGIN=ON"
#OPTS="$OPTS -DBUILD_GITHUB_PLUGIN=OFF"
# Python scripting, uncomment to enable
#OPTS="$OPTS -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON -DKICAD_SCRIPTING_WXPYTHON=ON"
LIB_REPO=~dickelbeck/kicad/library-read-only
# Use https under bazaar to retrieve repos because this does not require a
# launchpad.net account. Whereas lp:<something> requires a launchpad account.
# https results in read only access.
REPOS=https://code.launchpad.net
# This is no longer maintained, is old
#LEGACY_LIB_REPO=$REPOS/~dickelbeck/kicad/library-read-only
# This branch is a bzr/launchpad import of the Git repository
# at https://github.com/KiCad/kicad-library.git.
# It has schematic parts and 3D models in it.
LIBS_REPO=$REPOS/~kicad-product-committers/kicad/library
SRCS_REPO=$REPOS/~kicad-product-committers/kicad/product
DOCS_REPO=$REPOS/~kicad-developers/kicad/doc
usage()
......@@ -196,7 +209,7 @@ install_or_update()
echo "step 3) checking out the source code from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad.bzr" ]; then
bzr checkout lp:kicad kicad.bzr
bzr checkout $SRCS_REPO kicad.bzr
echo " source repo to local working tree."
else
cd kicad.bzr
......@@ -205,8 +218,9 @@ install_or_update()
cd ../
fi
echo "step 4) checking out the schematic parts and 3D library repo."
if [ ! -d "$WORKING_TREES/kicad-lib.bzr" ]; then
bzr checkout "lp:$LIB_REPO" kicad-lib.bzr
bzr checkout $LIBS_REPO kicad-lib.bzr
echo ' kicad-lib checked out.'
else
cd kicad-lib.bzr
......@@ -217,7 +231,7 @@ install_or_update()
echo "step 5) checking out the documentation from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad-doc.bzr" ]; then
bzr checkout lp:~kicad-developers/kicad/doc kicad-doc.bzr
bzr checkout $DOCS_REPO kicad-doc.bzr
echo " docs checked out."
else
cd kicad-doc.bzr
......
REM This file was created using <kicad_src>/scripts/library-repos-install.sh on linux.
REM Run it from a directory you desire as the base for all libraries.
git clone https://github.com/KiCad/kicad-library
git clone https://github.com/KiCad/Displays_7-Segment.pretty
git clone https://github.com/KiCad/Air_Coils_SML_NEOSID.pretty
git clone https://github.com/KiCad/Sockets_BNC.pretty
git clone https://github.com/KiCad/Buzzers_Beepers.pretty
git clone https://github.com/KiCad/Capacitors_Elko_ThroughHole.pretty
git clone https://github.com/KiCad/Capacitors.pretty
git clone https://github.com/KiCad/Capacitors_SMD.pretty
git clone https://github.com/KiCad/Capacitors_ThroughHole.pretty
git clone https://github.com/KiCad/Choke_Axial_ThroughHole.pretty
git clone https://github.com/KiCad/Choke_Radial_ThroughHole.pretty
git clone https://github.com/KiCad/Choke_SMD.pretty
git clone https://github.com/KiCad/Choke_Toroid_ThroughHole.pretty
git clone https://github.com/KiCad/Choke_Common-Mode_Wurth.pretty
git clone https://github.com/KiCad/Connect.pretty
git clone https://github.com/KiCad/Connectors_Serial_MOLEX.pretty
git clone https://github.com/KiCad/Converters_DCDC_ACDC.pretty
git clone https://github.com/KiCad/Crystals.pretty
git clone https://github.com/KiCad/Crystals_Oscillators_SMD.pretty
git clone https://github.com/KiCad/Diodes_SMD.pretty
git clone https://github.com/KiCad/Diodes_ThroughHole.pretty
git clone https://github.com/KiCad/Discret.pretty
git clone https://github.com/KiCad/Display.pretty
git clone https://github.com/KiCad/Divers.pretty
git clone https://github.com/KiCad/EuroBoard_Outline.pretty
git clone https://github.com/KiCad/Fiducials.pretty
git clone https://github.com/KiCad/Filters_HF_Coils_NEOSID.pretty
git clone https://github.com/KiCad/Footprint_Symbols.pretty
git clone https://github.com/KiCad/Fuse_Holders_and_Fuses.pretty
git clone https://github.com/KiCad/Heatsinks.pretty
git clone https://github.com/KiCad/Housings_ROHM.pretty
git clone https://github.com/KiCad/Housings_SIP9.pretty
git clone https://github.com/KiCad/Housings_SOT-23_SOT-143_TSOT-6.pretty
git clone https://github.com/KiCad/Housings_SOT-89.pretty
git clone https://github.com/KiCad/Housings_SOT.pretty
git clone https://github.com/KiCad/Housings_TO-50.pretty
git clone https://github.com/KiCad/Housings_TO-78.pretty
git clone https://github.com/KiCad/Housings_TO-92.pretty
git clone https://github.com/KiCad/Inductors.pretty
git clone https://github.com/KiCad/Inductors_NEOSID.pretty
git clone https://github.com/KiCad/IR-DirectFETs.pretty
git clone https://github.com/KiCad/Iut.pretty
git clone https://github.com/KiCad/Labels.pretty
git clone https://github.com/KiCad/LEDs.pretty
git clone https://github.com/KiCad/Hall-Effect_Transducers_LEM.pretty
git clone https://github.com/KiCad/Measurement_Points.pretty
git clone https://github.com/KiCad/Measurement_Scales.pretty
git clone https://github.com/KiCad/Mechanical_Sockets.pretty
git clone https://github.com/KiCad/Mounting_Holes.pretty
git clone https://github.com/KiCad/Muonde.pretty
git clone https://github.com/KiCad/NF-Transformers_ETAL.pretty
git clone https://github.com/KiCad/Oddities.pretty
git clone https://github.com/KiCad/Transistors_OldSowjetAera.pretty
git clone https://github.com/KiCad/Opto-Devices.pretty
git clone https://github.com/KiCad/Oscillator-Modules.pretty
git clone https://github.com/KiCad/Oscillators.pretty
git clone https://github.com/KiCad/Pentawatts.pretty
git clone https://github.com/KiCad/PFF_PSF_PSS_Leadforms.pretty
git clone https://github.com/KiCad/Pin_Arrays.pretty
git clone https://github.com/KiCad/Potentiometers.pretty
git clone https://github.com/KiCad/Power_Integrations.pretty
git clone https://github.com/KiCad/Printtrafo_CHK.pretty
git clone https://github.com/KiCad/Relays_ThroughHole.pretty
git clone https://github.com/KiCad/Resistors_SMD.pretty
git clone https://github.com/KiCad/Resistors_ThroughHole.pretty
git clone https://github.com/KiCad/Resistors_Universal.pretty
git clone https://github.com/KiCad/QFP.pretty
git clone https://github.com/KiCad/SMD_Packages.pretty
git clone https://github.com/KiCad/Sockets_DIP.pretty
git clone https://github.com/KiCad/Sockets_Mini-Universal.pretty
git clone https://github.com/KiCad/Sockets.pretty
git clone https://github.com/KiCad/Sockets_MOLEX_KK-System.pretty
git clone https://github.com/KiCad/Sockets_PGA.pretty
git clone https://github.com/KiCad/Sockets_WAGO734.pretty
git clone https://github.com/KiCad/SOIC_Packages.pretty
git clone https://github.com/KiCad/SSOP_Packages.pretty
git clone https://github.com/KiCad/Capacitors_Tantalum_SMD.pretty
git clone https://github.com/KiCad/Terminal_Blocks.pretty
git clone https://github.com/KiCad/Transformers_SMPS_ThroughHole.pretty
git clone https://github.com/KiCad/Transistors_SMD.pretty
git clone https://github.com/KiCad/Transistors_TO-220.pretty
git clone https://github.com/KiCad/Transistors_TO-247.pretty
git clone https://github.com/KiCad/Valves.pretty
git clone https://github.com/KiCad/Wire_Connections_Bridges.pretty
git clone https://github.com/KiCad/Wire_Pads.pretty
git clone https://github.com/KiCad/Pin_Headers.pretty
git clone https://github.com/KiCad/Socket_Strips.pretty
......@@ -34,12 +34,15 @@ usage()
echo ""
echo "./library-sources-install.sh <cmd>"
echo " where <cmd> is one of:"
echo " --install-prerequisites (install command tools needed here, run once first.)"
echo " --install-or-update (from github, the library sources.)"
echo " --remove-all-libraries (remove all *.pretty from $WORKING_TREES/library-repos/. )"
echo " --install-prerequisites (install command tools needed here, run once first.)"
echo " --remove-orphaned-libraries (remove local libraries which have been deleted or renamed at github.)"
echo " --list-libraries (show the full list of github libraries.)"
echo " --create-bat-file (cat a windows batch file, redirect to capture to disk.)"
echo ""
echo "example:"
echo "examples (with --install-prerequisites once first):"
echo ' $ ./library-sources-install.sh --install-prerequisites'
echo ' $ ./library-sources-install.sh --install-or-update'
}
......@@ -134,7 +137,7 @@ checkout_or_update_libraries()
if [ ! -e "$WORKING_TREES/library-repos/$repo" ]; then
# Be _sure_ and preserve the directory name, we want extension .pretty not .pretty.git.
# Preserve the directory extension as ".pretty".
# That way those repos can serve as pretty libraries directly if need be.
echo "installing $WORKING_TREES/library-repos/$repo"
......@@ -217,5 +220,32 @@ if [ $# -eq 1 -a "$1" == "--install-prerequisites" ]; then
exit
fi
if [ $# -eq 1 -a "$1" == "--list-libraries" ]; then
# use github API to get repos into PRETTY_REPOS var
detect_pretty_repos
# add the "schematic parts & 3D model" kicad-library to total
for repo in kicad-library $PRETTY_REPOS; do
echo "$repo"
done
exit
fi
# may re-direct this output to a disk file for Windows *.BAT file creation.
if [ $# -eq 1 -a "$1" == "--create-bat-file" ]; then
# use github API to get repos into PRETTY_REPOS var
detect_pretty_repos
echo "REM This file was created using <kicad_src>/scripts/library-repos-install.sh on linux."
echo "REM Run it from a directory you desire as the base for all libraries."
# add the "schematic parts & 3D model" kicad-library to total
for repo in kicad-library $PRETTY_REPOS; do
echo "git clone https://github.com/KiCad/$repo"
done
exit
fi
usage
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