Commit 179bb920 authored by Marco Serantoni's avatar Marco Serantoni
Browse files

[MacOSX] adding multiprocess building and initial support for KICAD_BUILD_DYNAMIC

parent 4f29440f
Loading
Loading
Loading
Loading
+25 −2
Original line number Diff line number Diff line
@@ -178,7 +178,6 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
    set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing" )

    if( APPLE )
        set( KICAD_BUILD_STATIC ON)

        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" )
@@ -300,10 +299,18 @@ if ( KICAD_BUILD_STATIC OR 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(FATAL_ERROR "KICAD_BUILD_DYNAMIC Not implemented yet")
        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 )

@@ -311,6 +318,7 @@ if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
        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 )
@@ -505,6 +513,21 @@ add_dependencies( pl_editor 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 )
endif()


#############
# Resources #
#############
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ string( REPLACE "unit_test_framework" "test" boost_libs_list "${BOOST_LIBS_BUILT
# Default Toolset
set( BOOST_TOOLSET "toolset=gcc" )

if( KICAD_BUILD_STATIC )
if( KICAD_BUILD_STATIC OR APPLE )
    set( BOOST_LINKTYPE  "link=static" )
else()
    unset( BOOST_LINKTYPE )
+8 −3
Original line number Diff line number Diff line
@@ -37,6 +37,11 @@ find_package( BZip2 REQUIRED )

set( PREFIX ${DOWNLOAD_DIR}/cairo )

if ( KICAD_BUILD_STATIC )
    set( CAIRO_BUILDTYPE --disable-shared )
endif( KICAD_BUILD_STATIC )


if (APPLE) 

    set( CAIRO_CFLAGS  "CFLAGS=" )
@@ -77,7 +82,7 @@ ExternalProject_Add( cairo
    #SOURCE_DIR       "${PREFIX}"
    #PATCH_COMMAND    ""

    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_PATH=${PROJECT_SOURCE_DIR}/pixman_root/lib/pkgconfig:${PROJECT_SOURCE_DIR}/libpng_root/lib/pkgconfig
                      --enable-png=yes --enable-svg=yes
@@ -88,8 +93,8 @@ ExternalProject_Add( cairo

    #BINARY_DIR      "${PREFIX}"

    BUILD_COMMAND   make
    BUILD_COMMAND   $(MAKE) 

    INSTALL_DIR     "${CAIRO_ROOT}"
    INSTALL_COMMAND make install
    INSTALL_COMMAND $(MAKE) install
    )
+3 −3
Original line number Diff line number Diff line
@@ -65,8 +65,8 @@ ExternalProject_Add( glew

    #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_COMMAND make GLEW_DEST="${GLEW_ROOT}" install && ranlib "${GLEW_ROOT}/lib/libGLEW.a"
    INSTALL_COMMAND  $(MAKE) GLEW_DEST="${GLEW_ROOT}" install && ranlib "${GLEW_ROOT}/lib/libGLEW.a"
    )
+9 −3
Original line number Diff line number Diff line
@@ -43,6 +43,12 @@ if (APPLE)
    endif( CMAKE_OSX_ARCHITECTURES )
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
# 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
@@ -59,11 +65,11 @@ ExternalProject_Add( libpng
    BUILD_IN_SOURCE 1

    #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}"

    BUILD_COMMAND   make
    BUILD_COMMAND   $(MAKE) 

    INSTALL_DIR     "${LIBPNG_ROOT}"
    INSTALL_COMMAND make install
    INSTALL_COMMAND  $(MAKE) install
    )
Loading