Browse Source
[MacOSX] Automating building for OSX with KICAD_SCRIPTING, see Documentation/compiling/mac-osx.txt
pull/1/head
[MacOSX] Automating building for OSX with KICAD_SCRIPTING, see Documentation/compiling/mac-osx.txt
pull/1/head
8 changed files with 443 additions and 149 deletions
-
44CMakeLists.txt
-
73CMakeModules/download_pcre.cmake
-
77CMakeModules/download_swig.cmake
-
117CMakeModules/download_wxpython.cmake
-
174Documentation/compiling/mac-osx.txt
-
35pcbnew/CMakeLists.txt
-
17pcbnew/pcbnew.cpp
-
55scripts/osx_fixbundle.sh
@ -0,0 +1,73 @@ |
|||
# 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 PCRE |
|||
|
|||
#-----<configure>---------------------------------------------------------------- |
|||
|
|||
set( PCRE_RELEASE 8.34 ) |
|||
set( PCRE_MD5 eb34b2c9c727fd64940d6fd9a00995eb ) # 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( PCRE_ROOT "${PROJECT_SOURCE_DIR}/pcre_root" ) |
|||
|
|||
#-----</configure>--------------------------------------------------------------- |
|||
|
|||
find_package( BZip2 REQUIRED ) |
|||
|
|||
set( PREFIX ${DOWNLOAD_DIR}/pcre ) |
|||
|
|||
if (APPLE) |
|||
if( CMAKE_OSX_ARCHITECTURES ) |
|||
set( PCRE_CFLAGS "CFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.5" ) |
|||
set( PCRE_CXXFLAGS "CXXFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.5" ) |
|||
set( PCRE_LDFLAGS "LDFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.5" ) |
|||
endif( CMAKE_OSX_ARCHITECTURES ) |
|||
endif(APPLE) |
|||
|
|||
# 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( pcre |
|||
PREFIX "${PREFIX}" |
|||
DOWNLOAD_DIR "${DOWNLOAD_DIR}" |
|||
URL http://sourceforge.net/projects/pcre/files/pcre/${PCRE_RELEASE}/pcre-${PCRE_RELEASE}.tar.gz |
|||
URL_MD5 ${PCRE_MD5} |
|||
STAMP_DIR "${PREFIX}" |
|||
|
|||
#SOURCE_DIR "${PREFIX}" |
|||
BUILD_IN_SOURCE 1 |
|||
|
|||
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${PCRE_ROOT}" |
|||
|
|||
#PATCH_COMMAND "true" |
|||
CONFIGURE_COMMAND ./configure --prefix=${PCRE_ROOT} ${PCRE_CFLAGS} ${PCRE_CXXFLAGS} ${PCRE_LDFLAGS} --disable-dependency-tracking |
|||
|
|||
#BINARY_DIR "${PREFIX}" |
|||
|
|||
BUILD_COMMAND $(MAKE) |
|||
|
|||
INSTALL_DIR "${PCRE_ROOT}" |
|||
INSTALL_COMMAND $(MAKE) install |
|||
) |
|||
@ -0,0 +1,77 @@ |
|||
# 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 SWIG |
|||
|
|||
#-----<configure>---------------------------------------------------------------- |
|||
|
|||
set( SWIG_RELEASE 2.0.11 ) |
|||
set( SWIG_MD5 291ba57c0acd218da0b0916c280dcbae ) # 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( SWIG_ROOT "${PROJECT_SOURCE_DIR}/swig_root" ) |
|||
|
|||
#-----</configure>--------------------------------------------------------------- |
|||
|
|||
find_package( BZip2 REQUIRED ) |
|||
|
|||
set( PREFIX ${DOWNLOAD_DIR}/swig ) |
|||
|
|||
if (APPLE) |
|||
if( CMAKE_OSX_ARCHITECTURES ) |
|||
set( SWIG_CFLAGS "CFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.5" ) |
|||
set( SWIG_CXXFLAGS "CXXFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.5" ) |
|||
set( SWIG_LDFLAGS "LDFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.5" ) |
|||
set( SWIG_PYTHON "--with-python=/usr/bin/python2.6" ) |
|||
endif( CMAKE_OSX_ARCHITECTURES ) |
|||
endif(APPLE) |
|||
|
|||
# <SOURCE_DIR> = ${PREFIX}/src/glew |
|||
# 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( swig |
|||
PREFIX "${PREFIX}" |
|||
DOWNLOAD_DIR "${DOWNLOAD_DIR}" |
|||
URL http://sourceforge.net/projects/swig/files/swig/swig-${SWIG_RELEASE}/swig-${SWIG_RELEASE}.tar.gz |
|||
URL_MD5 ${SWIG_MD5} |
|||
STAMP_DIR "${PREFIX}" |
|||
|
|||
DEPENDS pcre |
|||
|
|||
#SOURCE_DIR "${PREFIX}" |
|||
BUILD_IN_SOURCE 1 |
|||
|
|||
UPDATE_COMMAND ${CMAKE_COMMAND} -E remove_directory "${SWIG_ROOT}" |
|||
|
|||
#PATCH_COMMAND "true" |
|||
CONFIGURE_COMMAND ./configure --prefix=${SWIG_ROOT} --with-pcre-prefix=${PCRE_ROOT} ${SWIG_CFLAGS} ${SWIG_LDFLAGS} ${SWIG_CXXFLAGS} ${SWIG_PYTHON} |
|||
|
|||
#BINARY_DIR "${PREFIX}" |
|||
|
|||
BUILD_COMMAND $(MAKE) |
|||
|
|||
INSTALL_DIR "${SWIG_ROOT}" |
|||
INSTALL_COMMAND $(MAKE) install |
|||
) |
|||
@ -0,0 +1,117 @@ |
|||
# 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 LIBWXPYTHON |
|||
|
|||
#-----<configure>---------------------------------------------------------------- |
|||
|
|||
set( LIBWXPYTHON_RELEASE 3.0.0.0 ) |
|||
set( LIBWXPYTHON_MD5 f5e32c7d85dc261ba777e113c3b7e365 ) # re-calc this on every RELEASE change |
|||
|
|||
set( LIBWXPYTHON_ROOT "${PROJECT_SOURCE_DIR}/libwxpython_root" ) |
|||
|
|||
#-----</configure>--------------------------------------------------------------- |
|||
|
|||
find_package( BZip2 REQUIRED ) |
|||
|
|||
set( PREFIX ${DOWNLOAD_DIR}/libwxpython ) |
|||
set( LIBWXPYTHON_EXEC python ) |
|||
set( LIBWXPYTHON_OPTS --wxpy_installdir=${LIBWXPYTHON_ROOT}/wxPython ) |
|||
|
|||
if (APPLE) |
|||
SET( LIBWXPYTHON_EXEC python2.6 ) |
|||
SET( LIBWXPYTHON_OPTS ${LIBWXPYTHON_OPTS} --osx_cocoa ) |
|||
#SET( LIBWXPYTHON_OPTS ${LIBWXPYTHON_OPTS} --mac_framework --mac_framework_prefix=${LIBWXPYTHON_ROOT}/wxPython ) |
|||
|
|||
if( CMAKE_OSX_ARCHITECTURES ) |
|||
STRING(REGEX REPLACE " -arch " "," LIBWXPYTHON_ARCHITECTURES ${CMAKE_OSX_ARCHITECTURES}) |
|||
SET( LIBWXPYTHON_OPTS ${LIBWXPYTHON_OPTS} --mac_arch=${LIBWXPYTHON_ARCHITECTURES}) |
|||
endif( CMAKE_OSX_ARCHITECTURES ) |
|||
endif(APPLE) |
|||
|
|||
if ( KICAD_BUILD_STATIC ) |
|||
#message fail |
|||
set( LIBWXPYTHON_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( libwxpython |
|||
PREFIX "${PREFIX}" |
|||
DOWNLOAD_DIR "${DOWNLOAD_DIR}" |
|||
URL http://sourceforge.net/projects/wxpython/files/wxPython/${LIBWXPYTHON_RELEASE}/wxPython-src-${LIBWXPYTHON_RELEASE}.tar.bz2 |
|||
URL_MD5 ${LIBWXPYTHON_MD5} |
|||
STAMP_DIR "${PREFIX}" |
|||
|
|||
BUILD_IN_SOURCE 1 |
|||
|
|||
PATCH_COMMAND bzr revert |
|||
COMMAND bzr patch -p0 "${PROJECT_SOURCE_DIR}/patches/wxpython-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 "${LIBWXPYTHON_ROOT}" |
|||
COMMAND ${LIBWXPYTHON_EXEC} wxPython/build-wxpython.py --clean |
|||
|
|||
CONFIGURE_COMMAND ${LIBWXPYTHON_EXEC} wxPython/build-wxpython.py --prefix=/Users/marco/Development/product/libwxpython_root --unicode --install ${LIBWXPYTHON_OPTS} |
|||
|
|||
#BINARY_DIR "${PREFIX}" |
|||
|
|||
BUILD_COMMAND true |
|||
|
|||
INSTALL_DIR "${LIBWXPYTHON_ROOT}" |
|||
INSTALL_COMMAND true |
|||
) |
|||
|
|||
ExternalProject_Add_Step( libwxpython bzr_commit_libwxpython |
|||
COMMAND bzr ci -q -m pristine <SOURCE_DIR> |
|||
COMMENT "committing pristine libwxpython files to 'libwxpython scratch repo'" |
|||
DEPENDERS patch |
|||
) |
|||
|
|||
|
|||
ExternalProject_Add_Step( libwxpython bzr_add_libwxpython |
|||
COMMAND bzr add -q ${PREFIX}/src/libwxpython |
|||
COMMENT "adding pristine libwxpython files to 'libwxpython scratch repo'" |
|||
DEPENDERS bzr_commit_libwxpython |
|||
) |
|||
|
|||
|
|||
ExternalProject_Add_Step( libwxpython bzr_init_libwxpython |
|||
COMMAND bzr init -q <SOURCE_DIR> |
|||
COMMENT "creating 'libwxpython scratch repo' specifically for libwx to track libwx patches" |
|||
DEPENDERS bzr_add_libwxpython |
|||
DEPENDEES download |
|||
) |
|||
|
|||
###### |
|||
# Now is time to search what we have built |
|||
###### |
|||
|
|||
ExternalProject_Add_Step( libwxpython libwxpython_recursive_message |
|||
COMMAND cmake . |
|||
COMMENT "*** RERUN CMAKE - wxWidgets built, now reissue a cmake to build Kicad" |
|||
DEPENDEES install |
|||
) |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue