Commit 9307b49e authored by f3nix's avatar f3nix

CMake build system for all apps. Usage in install.txt

parent dbcb9ca0
ADD_DEFINITIONS(-DPCBNEW)
INCLUDE_DIRECTORIES(../pcbnew)
SET(3D-VIEWER_SRCS
3d_aux.cpp
3d_canvas.cpp
3d_class.cpp
3d_draw.cpp
3d_frame.cpp
3d_read_mesh.cpp
3d_toolbar.cpp
trackball.cpp)
ADD_LIBRARY(3d-viewer ${3D-VIEWER_SRCS})
TODO:
* Fix kicad/minizip.
* Fix eeschema/plugins.
* Add install targets for binaries, docs, translations, libraries.
* Add DEBUG target.
* Testing under Windows and Mac.
* More testing ...
##---------------------------------------------------------------------------
## $RCSfile: CMakeLists.txt $
## $Source: CMakeLists.txt $
## $Revision: 1.48 $
## $Date: Feb 26, 2006 10:39:43 PM $
##---------------------------------------------------------------------------
## Author: Jorgen Bodde
## Copyright: (c) Jorgen Bodde
## License: wxWidgets License
##---------------------------------------------------------------------------
##---------------------------------------------------
## Please set your wxWidgets configuration here
##---------------------------------------------------
SET(CMAKE_FIND_LIBRARY_PREFIXES "")
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
# Here you can define what libraries of wxWidgets you need for your
# application. You can figure out what libraries you need here;
# http://www.wxwidgets.org/manuals/2.8/wx_librarieslist.html
SET(wxWidgets_USE_LIBS base core gl net)
# We need the Find package for wxWidgets to work
FIND_PACKAGE(wxWidgets)
##---------------------------------------------------
## Actual config file starts here
##---------------------------------------------------
# Did we find wxWidgets ? This condition will fail
# for as long as the internal vars do not point to
# the proper wxWidgets configuration
PROJECT(kicad)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
#SET(CMAKE_VERBOSE_MAKEFILE ON)
SET(wxWidgets_USE_LIBS base core adv gl html net)
FIND_PACKAGE(wxWidgets REQUIRED)
IF(wxWidgets_FOUND)
MESSAGE("-- wxWidgets found")
# Include wxWidgets macros
INCLUDE(${wxWidgets_USE_FILE})
# Our project is called 'minimal' this is how it will be called in
# visual studio, and in our makefiles.
PROJECT (KICAD_EDA)
# We define the include paths here, our minimal source dir is one,
# and also the include dirs defined by wxWidgets
INCLUDE_DIRECTORIES(
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/common
${CMAKE_SOURCE_DIR}/kicad/bitmaps
${CMAKE_SOURCE_DIR}/common/bitmaps
${wxWidgets_INCLUDE_DIRS}
)
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/share)
SUBDIRS(common 3d-viewer cvpcb eeschema gerbview kicad pcbnew)
ELSE(wxWidgets_FOUND)
# For convenience. When we cannot continue, inform the user
MESSAGE("wxWidgets not found!")
MESSAGE("wxWidgets is required to build KiCad!")
ENDIF(wxWidgets_FOUND)
add_subdirectory (common)
add_subdirectory (kicad)
# We define the include paths here, our minimal source dir is one,
# and also the include dirs defined by wxWidgets
#INCLUDE_DIRECTORIES()
INCLUDE_DIRECTORIES(bitmaps)
# For convenience we define the sources as a variable. You can add
# header files and cpp / c files and CMake will sort them out
SET(SRCS confirm
base_struct
copy_to_clipboard
basicframe
common_plot_functions
common_plotPS_functions
common_plotHPGL_functions
hotkeys_basic
drawtxt
wxwineda
string
gr_basic
gestfich
trigo
selcolor
bitmaps
common
eda_doc
toolbars
displlst
edaappl
block_commande
msgpanel
projet_config
get_component_dialog
eda_dde
worksheet
base_screen
dcsvg
)
SET(COMMON_SRCS
base_screen.cpp
base_struct.cpp
basicframe.cpp
bitmaps.cpp
block_commande.cpp
common.cpp
common_plot_functions.cpp
common_plotHPGL_functions.cpp
common_plotPS_functions.cpp
confirm.cpp
copy_to_clipboard.cpp
dcsvg.cpp
displlst.cpp
drawtxt.cpp
edaappl.cpp
eda_dde.cpp
eda_doc.cpp
# edamenu.cpp
gestfich.cpp
get_component_dialog.cpp
gr_basic.cpp
hotkeys_basic.cpp
msgpanel.cpp
projet_config.cpp
# pyhandler.cpp
selcolor.cpp
string.cpp
toolbars.cpp
trigo.cpp
worksheet.cpp
wxwineda.cpp)
# If we build for windows systems, we also include the resource file
# containing the manifest, icon and other resources
#IF(WIN32)
# SET(SRCS ${SRCS} kicad.rc)
#ENDIF(WIN32)
# Here we define the executable kicad.exe or kicad on other systems
# the above paths and defines will be used in this build
ADD_LIBRARY(common ${SRCS})
# We add to our target 'kicad' the wxWidgets libraries. These are
# set for us by the find script. If you need other libraries, you
# can add them here as well.
#TARGET_LINK_LIBRARIES(kicad ${wxWidgets_LIBRARIES} )
ADD_LIBRARY(common ${COMMON_SRCS})
ADD_DEFINITIONS(-DCVPCB)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
bitmaps
../3d-viewer
../pcbnew)
SET(CVPCB_SRCS
autosel.cpp
cfg.cpp
class_cvpcb.cpp
cvframe.cpp
cvpcb.cpp
# dialog_cvpcb_config.cpp
dialog_display_options.cpp
displayframe.cpp
genequiv.cpp
# genorcad.cpp
init.cpp
listboxes.cpp
listlib.cpp
loadcmp.cpp
memoire.cpp
menucfg.cpp
rdpcad.cpp
readschematicnetlist.cpp
savecmp.cpp
setvisu.cpp
tool_cvpcb.cpp
viewlnet.cpp
viewlogi.cpp
writenetlistpcbnew.cpp)
SET(CVPCB_EXTRA_SRCS
../pcbnew/basepcbframe.cpp
../pcbnew/class_board.cpp
../pcbnew/class_cotation.cpp
../pcbnew/class_edge_mod.cpp
../pcbnew/class_equipot.cpp
../pcbnew/class_mire.cpp
../pcbnew/class_module.cpp
../pcbnew/class_pad.cpp
../pcbnew/class_pcb_text.cpp
../pcbnew/class_text_mod.cpp
../pcbnew/class_track.cpp
../pcbnew/classpcb.cpp
../pcbnew/collectors.cpp
../pcbnew/ioascii.cpp
../pcbnew/tracemod.cpp
../share/drawframe.cpp
../share/drawpanel.cpp
../share/infospgm.cpp
../share/zoom.cpp)
IF(WIN32)
SET(CVPCB_RESOURCES cvpcb.rc)
ENDIF(WIN32)
IF(APPLE)
SET(CVPCB_RESOURCES cvpcb.r)
ENDIF(APPLE)
ADD_EXECUTABLE(cvpcb WIN32 MACOSX_BUNDLE ${CVPCB_SRCS} ${CVPCB_EXTRA_SRCS} ${CVPCB_RESOURCES})
TARGET_LINK_LIBRARIES(cvpcb common 3d-viewer ${wxWidgets_LIBRARIES})
INSTALL(PROGRAMS cvpcb DESTINATION /bin)
ADD_DEFINITIONS(-DEESCHEMA)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
bitmaps)
SET(EESCHEMA_SRCS
affiche.cpp
annotate.cpp
# annotate_dialog.cpp
block.cpp
block_libedit.cpp
busentry.cpp
bus-wire-junction.cpp
class_hierarchy_sheet.cpp
class_screen.cpp
class_text-label.cpp
cleanup.cpp
cmpclass.cpp
component_class.cpp
controle.cpp
cross-probing.cpp
dangling_ends.cpp
database.cpp
delete.cpp
delsheet.cpp
dialog_build_BOM.cpp
# dialog_cmp_graphic_properties.cpp
dialog_create_component.cpp
# dialog_edit_component_in_lib.cpp
# dialog_edit_component_in_schematic.cpp
# dialog_edit_label.cpp
dialog_eeschema_config.cpp
dialog_erc.cpp
# dialog_find.cpp
dialog_options.cpp
# divers.cpp
edit_component_in_lib.cpp
edit_component_in_schematic.cpp
edit_label.cpp
eeconfig.cpp
# eecreate.cpp
eelayer.cpp
eelibs_draw_components.cpp
eelibs_read_libraryfiles.cpp
eeload.cpp
eeredraw.cpp
eeschema.cpp
# eestatus.cpp
eestring.cpp
erc.cpp
files-io.cpp
find.cpp
getpart.cpp
hierarch.cpp
hotkeys.cpp
libalias.cpp
libarch.cpp
libclass.cpp
libedit.cpp
libedit_onleftclick.cpp
libedit_onrightclick.cpp
libedit_undo_redo.cpp
lib_export.cpp
libfield.cpp
libframe.cpp
load_one_schematic_file.cpp
locate.cpp
menubar.cpp
netform.cpp
netlist_control.cpp
netlist.cpp
onleftclick.cpp
onrightclick.cpp
pinedit.cpp
# pinedit-dialog.cpp
plot.cpp
plothpgl.cpp
plotps.cpp
priorque.cpp
savelib.cpp
save_schemas.cpp
schedit.cpp
schematic_undo_redo.cpp
schframe.cpp
selpart.cpp
sheet.cpp
sheetlab.cpp
symbdraw.cpp
symbedit.cpp
symbtext.cpp
tool_lib.cpp
tool_sch.cpp
tool_viewlib.cpp
viewlib_frame.cpp
viewlibs.cpp)
SET(EESCHEMA_EXTRA_SRCS
../share/drawframe.cpp
../share/drawpanel.cpp
../share/infospgm.cpp
../share/setpage.cpp
../share/svg_print.cpp
../share/wxprint.cpp
../share/zoom.cpp
# ../share/buildmnu.cpp
# ../share/mdiframe.cpp
# ../share/treeprj.cpp
)
IF(WIN32)
SET(EESCHEMA_RESOURCES eeschema.rc)
ENDIF(WIN32)
IF(APPLE)
SET(EESCHEMA_RESOURCES eeschema.r)
ENDIF(APPLE)
ADD_EXECUTABLE(eeschema WIN32 MACOSX_BUNDLE ${EESCHEMA_SRCS} ${EESCHEMA_EXTRA_SRCS} ${EESCHEMA_RESOURCES})
TARGET_LINK_LIBRARIES(eeschema common ${wxWidgets_LIBRARIES})
INSTALL(PROGRAMS eeschema DESTINATION /bin)
#ADD_SUBDIRECTORY(plugins)
INCLUDE(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(stricmp HAVE_STRICMP)
IF(HAVE_STRICMP)
ADD_EXECUTABLE(netlist_form_pads-pcb netlist_form_pads-pcb.cpp)
INSTALL(PROGRAMS netlist_form_pads-pcb DESTINATION /bin)
ENDIF(HAVE_STRICMP)
ADD_DEFINITIONS(-DGERBVIEW -DPCBNEW)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
../3d-viewer
../cvpcb
../pcbnew)
SET(GERBVIEW_SRCS
affiche.cpp
block.cpp
controle.cpp
dcode.cpp
deltrack.cpp
edit.cpp
export_to_pcbnew.cpp
files.cpp
gerberframe.cpp
gerbview_config.cpp
gerbview.cpp
hotkeys.cpp
initpcb.cpp
lay2plot.cpp
locate.cpp
onrightclick.cpp
options.cpp
pcbplot.cpp
# pcbtexte.cpp
# process_config.cpp
readgerb.cpp
reglage.cpp
rs274d.cpp
rs274x.cpp
select_layers_to_pcb.cpp
set_color.cpp
tool_gerber.cpp
tracepcb.cpp
trpiste.cpp
undelete.cpp)
SET(GERBVIEW_EXTRA_SRCS
../pcbnew/basepcbframe.cpp
../pcbnew/class_board.cpp
../pcbnew/class_marker.cpp
../pcbnew/class_pcb_text.cpp
../pcbnew/class_track.cpp
../pcbnew/classpcb.cpp
../pcbnew/collectors.cpp
../pcbnew/sel_layer.cpp
../share/drawframe.cpp
../share/drawpanel.cpp
../share/infospgm.cpp
../share/setpage.cpp
../share/wxprint.cpp
../share/zoom.cpp)
IF(WIN32)
SET(GERBVIEW_RESOURCES gerbview.rc)
ENDIF(WIN32)
IF(APPLE)
SET(GERBVIEW_RESOURCES gerbview.r)
ENDIF(APPLE)
ADD_EXECUTABLE(gerbview WIN32 MACOSX_BUNDLE ${GERBVIEW_SRCS} ${GERBVIEW_EXTRA_SRCS} ${GERBVIEW_RESOURCES})
TARGET_LINK_LIBRARIES(gerbview common 3d-viewer ${wxWidgets_LIBRARIES})
INSTALL(PROGRAMS gerbview DESTINATION /bin)
......@@ -53,18 +53,39 @@ This feature is still experimental and only for developers!
=== Requirements: cmake must be installed ===
1) An in-source build
An in-source build puts generated files in your source tree.
=== For verbose output of 'make': ===
cmake -DCMAKE_VERBOSE_MAKEFILE=1 .
make
=== For non-verbose output of 'make': ===
cmake .
make
2) An out-of-source build
An out-ouf-source build puts the libraries, and executables
in a directory separate from the source code directory(ies).
=== For verbose output of 'make': ===
mkdir kicad-build
cd kicad-build
cmake -DCMAKE_VERBOSE_MAKEFILE=1 ../
make
=== For non verbose output of 'make': ===
=== For non-verbose output of 'make': ===
mkdir kicad-build
cd kicad-build
cmake ../
make
NOTE:
If don't want to write -DCMAKE_VERBOSE_MAKEFILE=1 each time,
just uncomment the SET(CMAKE_VERBOSE_MAKEFILE ON) line in the
top CMakeLists.txt file.
3D modeler wings3D:
(Usefull only if you plan to create 3D shapes for Printed board modules)
......
# For convenience we define the sources as a variable. You can add
# header files and cpp / c files and CMake will sort them out
SET(SRCS kicad
treeprj_frame
treeprj_datas
buildmnu
../share/infospgm
mainframe
prjconfig
preferences
commandframe
files-io
)
# If we build for windows systems, we also include the resource file
# containing the manifest, icon and other resources
ADD_DEFINITIONS(-DKICAD)
INCLUDE_DIRECTORIES(bitmaps)
SET(KICAD_SRCS
buildmnu.cpp
commandframe.cpp
files-io.cpp
kicad.cpp
mainframe.cpp
preferences.cpp
prjconfig.cpp
treeprj_datas.cpp
treeprj_frame.cpp)
SET(KICAD_EXTRA_SRCS
../share/infospgm.cpp)
IF(WIN32)
SET(SRCS ${SRCS} kicad.rc)
SET(KICAD_RESOURCES kicad.rc)
ENDIF(WIN32)
IF(APPLE)
SET(KICAD_RESOURCES kicad.r)
ENDIF(APPLE)
ADD_EXECUTABLE(kicad WIN32 MACOSX_BUNDLE ${KICAD_SRCS} ${KICAD_EXTRA_SRCS} ${KICAD_RESOURCES})
TARGET_LINK_LIBRARIES(kicad common ${wxWidgets_LIBRARIES})
# Here we define the executable kicad.exe or kicad on other systems
# the above paths and defines will be used in this build
ADD_EXECUTABLE(kicad WIN32 ${SRCS})
INSTALL(PROGRAMS kicad DESTINATION /bin)
# We add to our target 'kicad' the wxWidgets libraries. These are
# set for us by the find script. If you need other libraries, you
# can add them here as well.
TARGET_LINK_LIBRARIES(kicad ${wxWidgets_LIBRARIES} common)
#ADD_SUBDIRECTORY(minizip)
# TODO:
# * Add include for wxzlib
SET(MINIZIP_SRCS
ioapi.c
minizip.c
zip.c)
ADD_EXECUTABLE(minizip ${MINIZIP_SRCS})
INSTALL(PROGRAMS minizip DESTINATION /bin)
ADD_DEFINITIONS(-DPCBNEW)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
bitmaps
../3d-viewer)
SET(PCBNEW_SRCS
affiche.cpp
attribut.cpp
automove.cpp
autoplac.cpp
autorout.cpp
basepcbframe.cpp
block.cpp
block_module_editor.cpp
board.cpp
class_board.cpp
class_board_item.cpp
class_cotation.cpp
class_edge_mod.cpp
class_equipot.cpp
class_marker.cpp
class_mire.cpp
class_module.cpp
class_pad.cpp
classpcb.cpp
class_pcb_text.cpp
class_text_mod.cpp
class_track.cpp
clean.cpp
# cleaningoptions_dialog.cpp
collectors.cpp
connect.cpp
controle.cpp
copy_track.cpp
cotation.cpp
cross-probing.cpp
deltrack.cpp
# dialog_display_options.cpp
# dialog_drc.cpp
dialog_edit_mod_text.cpp
# dialog_edit_module.cpp
dialog_general_options.cpp
# dialog_graphic_items_options.cpp
# dialog_initpcb.cpp
# dialog_netlist.cpp
# dialog_pad_edit.cpp
dialog_setup_libs.cpp
# dialog_track_options.cpp
dist.cpp
# docedit.cpp
dragsegm.cpp
drc.cpp
edgemod.cpp
edit.cpp
editedge.cpp
editmod.cpp
editpads.cpp
editrack.cpp
editrack-part2.cpp
# editrout.cpp
edit_track_width.cpp
edtxtmod.cpp
export_gencad.cpp
files.cpp
find.cpp
gendrill.cpp
gen_modules_placefile.cpp
globaleditpad.cpp
graphpcb.cpp
hotkeys.cpp
initpcb.cpp
ioascii.cpp
lay2plot.cpp
librairi.cpp
loadcmp.cpp
locate.cpp
menubarmodedit.cpp
menubarpcb.cpp
mirepcb.cpp
modedit.cpp
modedit_onclick.cpp
modeditoptions.cpp
modedit_undo_redo.cpp
moduleframe.cpp
modules.cpp
# move_copy_track.cpp
move-drag_pads.cpp
move_or_drag_track.cpp
muonde.cpp
muwave_command.cpp
netlist.cpp
onleftclick.cpp
onrightclick.cpp
pcbcfg.cpp
pcbframe.cpp
pcbnew.cpp
pcbplot.cpp
pcbtexte.cpp
plotgerb.cpp
plothpgl.cpp
plotps.cpp
plot_rtn.cpp
queue.cpp
ratsnest.cpp
# reglage.cpp
router.cpp
sel_layer.cpp
set_color.cpp
set_grid.cpp
solve.cpp
surbrill.cpp
swap_layers.cpp
tool_modedit.cpp
tool_onrightclick.cpp
tool_pcb.cpp
tracemod.cpp
tracepcb.cpp
track.cpp
tr_modif.cpp
trpiste.cpp
undelete.cpp
via_edit.cpp
work.cpp
xchgmod.cpp
zones.cpp)
SET(PCBNEW_EXTRA_SRCS
../share/drawframe.cpp
../share/drawpanel.cpp
../share/infospgm.cpp
../share/setpage.cpp
../share/wxprint.cpp
../share/zoom.cpp)
IF(WIN32)
SET(PCBNEW_RESOURCES pcbnew.rc)
ENDIF(WIN32)
IF(APPLE)
SET(PCBNEW_RESOURCES pcbnew.r)
ENDIF(APPLE)
ADD_EXECUTABLE(pcbnew WIN32 MACOSX_BUNDLE ${PCBNEW_SRCS} ${PCBNEW_EXTRA_SRCS} ${PCBNEW_RESOURCES})
TARGET_LINK_LIBRARIES(pcbnew common 3d-viewer ${wxWidgets_LIBRARIES})
INSTALL(PROGRAMS pcbnew DESTINATION /bin)
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