Loading files
94ec4b8feThis file is pinned to the selected release. Download the original to open it in your design tool.
# Enable Qt MOC/UIC/RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC OFF)
set(CMAKE_AUTORCC OFF)
# Allow specifying the author of the build to help investigating bug reports.
set(LIBREPCB_BUILD_AUTHOR
""
CACHE STRING "Author of this build."
)
# Allow overriding the share directory path
set(LIBREPCB_SHARE
"../share/librepcb"
CACHE STRING "Path to the LibrePCB share directory."
)
# Set this to YES to disable some features that make builds non-reproducible
# (like embedding the git commit hash or the path to the source directory in
# the binary).
set(LIBREPCB_REPRODUCIBLE
NO
CACHE BOOL "Disable feature that make builds non-reproducible"
)
if(LIBREPCB_REPRODUCIBLE)
message(STATUS "Creating a potentially reproducible build")
else()
# Detect git commit hash
find_package(Git)
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
execute_process(
COMMAND ${GIT_EXECUTABLE} -C "${CMAKE_SOURCE_DIR}" rev-parse --short
--verify HEAD
OUTPUT_VARIABLE SHORT_SHA
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(GIT_COMMIT_SHA ${SHORT_SHA})
execute_process(
COMMAND ${GIT_EXECUTABLE} -C "${CMAKE_SOURCE_DIR}" show -s --format=%ct
HEAD
OUTPUT_VARIABLE COMMIT_TIMESTAMP
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(GIT_COMMIT_TIMESTAMP ${COMMIT_TIMESTAMP})
else()
message(STATUS "Git not found, cannot set version info")
endif()
# Detect path to source share directory
set(LIBREPCB_SHARE_SOURCE "${CMAKE_SOURCE_DIR}/share")
# Detect path to binary output directory
set(LIBREPCB_BINARY_DIR "${CMAKE_BINARY_DIR}")
endif()
# Set this to YES to enable registering the application to the desktop
# environment at runtime (e.g. installing *.desktop file on Linux).
set(LIBREPCB_ENABLE_DESKTOP_INTEGRATION
NO
CACHE BOOL "Allow registering the application at runtime."
)
# Generate build_env.h file
configure_file(build_env.h.in librepcb_build_env.h @ONLY)
# Export library
add_library(
librepcb_core STATIC
3d/occmodel.cpp
3d/occmodel.h
3d/scenedata3d.cpp
3d/scenedata3d.h
3d/stepexport.cpp
3d/stepexport.h
algorithm/airwiresbuilder.cpp
algorithm/airwiresbuilder.h
algorithm/netsegmentsimplifier.cpp
algorithm/netsegmentsimplifier.h
application.cpp
application.h
attribute/attribute.cpp
attribute/attribute.h
attribute/attributekey.h
attribute/attributesubstitutor.cpp
attribute/attributesubstitutor.h
attribute/attributetype.cpp
attribute/attributetype.h
attribute/attributeunit.cpp
attribute/attributeunit.h
attribute/attrtypecapacitance.cpp
attribute/attrtypecapacitance.h
attribute/attrtypecurrent.cpp
attribute/attrtypecurrent.h
attribute/attrtypefrequency.cpp
attribute/attrtypefrequency.h
attribute/attrtypeinductance.cpp
attribute/attrtypeinductance.h
attribute/attrtypepower.cpp
attribute/attrtypepower.h
attribute/attrtyperesistance.cpp
attribute/attrtyperesistance.h
attribute/attrtypestring.cpp
attribute/attrtypestring.h
attribute/attrtypevoltage.cpp
attribute/attrtypevoltage.h
debug.cpp
debug.h
exceptions.cpp
exceptions.h
export/bom.cpp
export/bom.h
export/bomcsvwriter.cpp
export/bomcsvwriter.h
export/d356netlistgenerator.cpp
export/d356netlistgenerator.h
export/excellongenerator.cpp
export/excellongenerator.h
export/gerberaperturelist.cpp
export/gerberaperturelist.h
export/gerberattribute.cpp
export/gerberattribute.h
export/gerberattributewriter.cpp
export/gerberattributewriter.h
export/gerbergenerator.cpp
export/gerbergenerator.h
export/graphicsexport.cpp
export/graphicsexport.h
export/graphicsexportsettings.cpp
export/graphicsexportsettings.h
export/graphicspainter.cpp
export/graphicspainter.h
export/interactivehtmlbom.cpp
export/interactivehtmlbom.h
export/pickplacecsvwriter.cpp
export/pickplacecsvwriter.h
export/pickplacedata.cpp
export/pickplacedata.h
fileio/asynccopyoperation.cpp
fileio/asynccopyoperation.h
fileio/csvfile.cpp
fileio/csvfile.h
fileio/directorylock.cpp
fileio/directorylock.h
fileio/filepath.cpp
fileio/filepath.h
fileio/filesystem.h
fileio/fileutils.cpp
fileio/fileutils.h
fileio/outputdirectorywriter.cpp
fileio/outputdirectorywriter.h
fileio/transactionaldirectory.cpp
fileio/transactionaldirectory.h
fileio/transactionalfilesystem.cpp
fileio/transactionalfilesystem.h
fileio/versionfile.cpp
fileio/versionfile.h
fileio/ziparchive.cpp
fileio/ziparchive.h
fileio/zipwriter.cpp
fileio/zipwriter.h
font/strokefont.cpp
font/strokefont.h
font/strokefontpool.cpp
font/strokefontpool.h
font/stroketextpathbuilder.cpp
font/stroketextpathbuilder.h
geometry/circle.cpp
geometry/circle.h
geometry/hole.cpp
geometry/hole.h
geometry/image.cpp
geometry/image.h
geometry/junction.cpp
geometry/junction.h
geometry/netlabel.cpp
geometry/netlabel.h
geometry/netline.cpp
geometry/netline.h
geometry/pad.cpp
geometry/pad.h
geometry/padgeometry.cpp
geometry/padgeometry.h
geometry/padhole.cpp
geometry/padhole.h
geometry/path.cpp
geometry/path.h
geometry/polygon.cpp
geometry/polygon.h
geometry/stroketext.cpp
geometry/stroketext.h
geometry/text.cpp
geometry/text.h
geometry/trace.cpp
geometry/trace.h
geometry/vertex.cpp
geometry/vertex.h
geometry/via.cpp
geometry/via.h
geometry/zone.cpp
geometry/zone.h
import/dxfreader.cpp
import/dxfreader.h
job/archiveoutputjob.cpp
job/archiveoutputjob.h
job/board3doutputjob.cpp
job/board3doutputjob.h
job/bomoutputjob.cpp
job/bomoutputjob.h
job/copyoutputjob.cpp
job/copyoutputjob.h
job/gerberexcellonoutputjob.cpp
job/gerberexcellonoutputjob.h
job/gerberx3outputjob.cpp
job/gerberx3outputjob.h
job/graphicsoutputjob.cpp
job/graphicsoutputjob.h
job/interactivehtmlbomoutputjob.cpp
job/interactivehtmlbomoutputjob.h
job/lppzoutputjob.cpp
job/lppzoutputjob.h
job/netlistoutputjob.cpp
job/netlistoutputjob.h
job/outputjob.cpp
job/outputjob.h
job/pickplaceoutputjob.cpp
job/pickplaceoutputjob.h
job/projectjsonoutputjob.cpp
job/projectjsonoutputjob.h
job/unknownoutputjob.cpp
job/unknownoutputjob.h
library/cat/componentcategory.cpp
library/cat/componentcategory.h
library/cat/librarycategory.cpp
library/cat/librarycategory.h
library/cat/librarycategorycheck.cpp
library/cat/librarycategorycheck.h
library/cat/librarycategorycheckmessages.cpp
library/cat/librarycategorycheckmessages.h
library/cat/packagecategory.cpp
library/cat/packagecategory.h
library/cmp/cmpsigpindisplaytype.cpp
library/cmp/cmpsigpindisplaytype.h
library/cmp/component.cpp
library/cmp/component.h
library/cmp/componentcheck.cpp
library/cmp/componentcheck.h
library/cmp/componentcheckmessages.cpp
library/cmp/componentcheckmessages.h
library/cmp/componentpinsignalmap.cpp
library/cmp/componentpinsignalmap.h
library/cmp/componentprefix.h
library/cmp/componentsignal.cpp
library/cmp/componentsignal.h
library/cmp/componentsymbolvariant.cpp
library/cmp/componentsymbolvariant.h
library/cmp/componentsymbolvariantitem.cpp
library/cmp/componentsymbolvariantitem.h
library/cmp/componentsymbolvariantitemsuffix.h
library/dev/device.cpp
library/dev/device.h
library/dev/devicecheck.cpp
library/dev/devicecheck.h
library/dev/devicecheckmessages.cpp
library/dev/devicecheckmessages.h
library/dev/devicepadsignalmap.cpp
library/dev/devicepadsignalmap.h
library/dev/part.cpp
library/dev/part.h
library/library.cpp
library/library.h
library/librarybaseelement.cpp
library/librarybaseelement.h
library/librarybaseelementcheck.cpp
library/librarybaseelementcheck.h
library/librarybaseelementcheckmessages.cpp
library/librarybaseelementcheckmessages.h
library/libraryelement.cpp
library/libraryelement.h
library/libraryelementcheck.cpp
library/libraryelementcheck.h
library/libraryelementcheckmessages.cpp
library/libraryelementcheckmessages.h
library/org/organization.cpp
library/org/organization.h
library/org/organizationcheck.cpp
library/org/organizationcheck.h
library/org/organizationpcbdesignrules.cpp
library/org/organizationpcbdesignrules.h
library/pkg/footprint.cpp
library/pkg/footprint.h
library/pkg/footprintpad.cpp
library/pkg/footprintpad.h
library/pkg/footprintpainter.cpp
library/pkg/footprintpainter.h
library/pkg/package.cpp
library/pkg/package.h
library/pkg/packagecheck.cpp
library/pkg/packagecheck.h
library/pkg/packagecheckmessages.cpp
library/pkg/packagecheckmessages.h
library/pkg/packagemodel.cpp
library/pkg/packagemodel.h
library/pkg/packagepad.cpp
library/pkg/packagepad.h
library/resource.cpp
library/resource.h
library/sym/symbol.cpp
library/sym/symbol.h
library/sym/symbolcheck.cpp
library/sym/symbolcheck.h
library/sym/symbolcheckmessages.cpp
library/sym/symbolcheckmessages.h
library/sym/symbolpainter.cpp
library/sym/symbolpainter.h
library/sym/symbolpin.cpp
library/sym/symbolpin.h
network/apiendpoint.cpp
network/apiendpoint.h
network/filedownload.cpp
network/filedownload.h
network/networkaccessmanager.cpp
network/networkaccessmanager.h
network/networkrequest.cpp
network/networkrequest.h
network/networkrequestbase.cpp
network/networkrequestbase.h
network/orderpcbapirequest.cpp
network/orderpcbapirequest.h
norms.h
project/board/board.cpp
project/board/board.h
project/board/boardairwiresbuilder.cpp
project/board/boardairwiresbuilder.h
project/board/boardd356netlistexport.cpp
project/board/boardd356netlistexport.h
project/board/boarddesignrules.cpp
project/board/boarddesignrules.h
project/board/boardfabricationoutputsettings.cpp
project/board/boardfabricationoutputsettings.h
project/board/boardgerberexport.cpp
project/board/boardgerberexport.h
project/board/boardholedata.cpp
project/board/boardholedata.h
project/board/boardinteractivehtmlbomgenerator.cpp
project/board/boardinteractivehtmlbomgenerator.h
project/board/boardnetsegmentsplitter.cpp
project/board/boardnetsegmentsplitter.h
project/board/boardpaddata.cpp
project/board/boardpaddata.h
project/board/boardpainter.cpp
project/board/boardpainter.h
project/board/boardpickplacegenerator.cpp
project/board/boardpickplacegenerator.h
project/board/boardplanefragmentsbuilder.cpp
project/board/boardplanefragmentsbuilder.h
project/board/boardpolygondata.cpp
project/board/boardpolygondata.h
project/board/boardspecctraexport.cpp
project/board/boardspecctraexport.h
project/board/boardstroketextdata.cpp
project/board/boardstroketextdata.h
project/board/boardzonedata.cpp
project/board/boardzonedata.h
project/board/drc/boardclipperpathgenerator.cpp
project/board/drc/boardclipperpathgenerator.h
project/board/drc/boarddesignrulecheck.cpp
project/board/drc/boarddesignrulecheck.h
project/board/drc/boarddesignrulecheckdata.cpp
project/board/drc/boarddesignrulecheckdata.h
project/board/drc/boarddesignrulecheckmessages.cpp
project/board/drc/boarddesignrulecheckmessages.h
project/board/drc/boarddesignrulechecksettings.cpp
project/board/drc/boarddesignrulechecksettings.h
project/board/items/bi_airwire.cpp
project/board/items/bi_airwire.h
project/board/items/bi_base.cpp
project/board/items/bi_base.h
project/board/items/bi_device.cpp
project/board/items/bi_device.h
project/board/items/bi_hole.cpp
project/board/items/bi_hole.h
project/board/items/bi_netline.cpp
project/board/items/bi_netline.h
project/board/items/bi_netpoint.cpp
project/board/items/bi_netpoint.h
project/board/items/bi_netsegment.cpp
project/board/items/bi_netsegment.h
project/board/items/bi_pad.cpp
project/board/items/bi_pad.h
project/board/items/bi_plane.cpp
project/board/items/bi_plane.h
project/board/items/bi_polygon.cpp
project/board/items/bi_polygon.h
project/board/items/bi_stroketext.cpp
project/board/items/bi_stroketext.h
project/board/items/bi_via.cpp
project/board/items/bi_via.h
project/board/items/bi_zone.cpp
project/board/items/bi_zone.h
project/board/realisticboardpainter.cpp
project/board/realisticboardpainter.h
project/bomgenerator.cpp
project/bomgenerator.h
project/circuit/assemblyvariant.cpp
project/circuit/assemblyvariant.h
project/circuit/bus.cpp
project/circuit/bus.h
project/circuit/circuit.cpp
project/circuit/circuit.h
project/circuit/componentassemblyoption.cpp
project/circuit/componentassemblyoption.h
project/circuit/componentinstance.cpp
project/circuit/componentinstance.h
project/circuit/componentsignalinstance.cpp
project/circuit/componentsignalinstance.h
project/circuit/netclass.cpp
project/circuit/netclass.h
project/circuit/netsignal.cpp
project/circuit/netsignal.h
project/erc/electricalrulecheck.cpp
project/erc/electricalrulecheck.h
project/erc/electricalrulecheckmessages.cpp
project/erc/electricalrulecheckmessages.h
project/outputjobrunner.cpp
project/outputjobrunner.h
project/project.cpp
project/project.h
project/projectattributelookup.cpp
project/projectattributelookup.h
project/projectjsonexport.cpp
project/projectjsonexport.h
project/projectlibrary.cpp
project/projectlibrary.h
project/projectloader.cpp
project/projectloader.h
project/schematic/items/si_base.cpp
project/schematic/items/si_base.h
project/schematic/items/si_busjunction.cpp
project/schematic/items/si_busjunction.h
project/schematic/items/si_buslabel.cpp
project/schematic/items/si_buslabel.h
project/schematic/items/si_busline.cpp
project/schematic/items/si_busline.h
project/schematic/items/si_bussegment.cpp
project/schematic/items/si_bussegment.h
project/schematic/items/si_image.cpp
project/schematic/items/si_image.h
project/schematic/items/si_netlabel.cpp
project/schematic/items/si_netlabel.h
project/schematic/items/si_netline.cpp
project/schematic/items/si_netline.h
project/schematic/items/si_netpoint.cpp
project/schematic/items/si_netpoint.h
project/schematic/items/si_netsegment.cpp
project/schematic/items/si_netsegment.h
project/schematic/items/si_polygon.cpp
project/schematic/items/si_polygon.h
project/schematic/items/si_symbol.cpp
project/schematic/items/si_symbol.h
project/schematic/items/si_symbolpin.cpp
project/schematic/items/si_symbolpin.h
project/schematic/items/si_text.cpp
project/schematic/items/si_text.h
project/schematic/schematic.cpp
project/schematic/schematic.h
project/schematic/schematicnetsegmentsplitter.cpp
project/schematic/schematicnetsegmentsplitter.h
project/schematic/schematicpainter.cpp
project/schematic/schematicpainter.h
rulecheck/rulecheckmessage.cpp
rulecheck/rulecheckmessage.h
serialization/fileformatmigration.cpp
serialization/fileformatmigration.h
serialization/fileformatmigrationunstable.cpp
serialization/fileformatmigrationunstable.h
serialization/fileformatmigrationv01.cpp
serialization/fileformatmigrationv01.h
serialization/fileformatmigrationv1.cpp
serialization/fileformatmigrationv1.h
serialization/serializablekeyvaluemap.h
serialization/serializableobjectlist.h
serialization/sexpression.cpp
serialization/sexpression.h
sqlitedatabase.cpp
sqlitedatabase.h
systeminfo.cpp
systeminfo.h
types/alignment.cpp
types/alignment.h
types/angle.cpp
types/angle.h
types/boundedunsignedratio.cpp
types/boundedunsignedratio.h
types/busname.h
types/circuitidentifier.h
types/elementname.h
types/enums.cpp
types/enums.h
types/fileproofname.h
types/layer.cpp
types/layer.h
types/length.cpp
types/length.h
types/lengthunit.cpp
types/lengthunit.h
types/maskconfig.cpp
types/maskconfig.h
types/pcbcolor.cpp
types/pcbcolor.h
types/point.cpp
types/point.h
types/ratio.cpp
types/ratio.h
types/signalrole.cpp
types/signalrole.h
types/simplestring.h
types/stroketextspacing.cpp
types/stroketextspacing.h
types/tag.h
types/uuid.cpp
types/uuid.h
types/version.cpp
types/version.h
utils/clipperhelpers.cpp
utils/clipperhelpers.h
utils/mathparser.cpp
utils/mathparser.h
utils/messagelogger.cpp
utils/messagelogger.h
utils/overlinemarkupparser.cpp
utils/overlinemarkupparser.h
utils/qtmetatyperegistration.h
utils/rusthandle.h
utils/scopeguard.h
utils/scopeguardlist.h
utils/signalslot.h
utils/tagmatcher.cpp
utils/tagmatcher.h
utils/tangentpathjoiner.cpp
utils/tangentpathjoiner.h
utils/toolbox.cpp
utils/toolbox.h
utils/transform.cpp
utils/transform.h
workspace/basecolorscheme.cpp
workspace/basecolorscheme.h
workspace/colorrole.cpp
workspace/colorrole.h
workspace/uitheme.cpp
workspace/uitheme.h
workspace/usercolorscheme.cpp
workspace/usercolorscheme.h
workspace/workspace.cpp
workspace/workspace.h
workspace/workspacelibrarydb.cpp
workspace/workspacelibrarydb.h
workspace/workspacelibrarydbwriter.cpp
workspace/workspacelibrarydbwriter.h
workspace/workspacelibraryscanner.cpp
workspace/workspacelibraryscanner.h
workspace/workspacesettings.cpp
workspace/workspacesettings.h
workspace/workspacesettingsitem.cpp
workspace/workspacesettingsitem.h
workspace/workspacesettingsitem_colorschemes.cpp
workspace/workspacesettingsitem_colorschemes.h
workspace/workspacesettingsitem_genericvalue.h
workspace/workspacesettingsitem_genericvaluelist.h
workspace/workspacesettingsitem_keyboardshortcuts.cpp
workspace/workspacesettingsitem_keyboardshortcuts.h
)
target_include_directories(
librepcb_core
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../.."
)
target_include_directories(
librepcb_core
PUBLIC "${CMAKE_CURRENT_BINARY_DIR}"
)
target_link_libraries(
librepcb_core
PRIVATE common
# Third party
OpenCascade::OpenCascade
DelaunayTriangulation::DelaunayTriangulation
Dxflib::Dxflib
FontoBene::FontoBeneQt
MuParser::MuParser
)
target_link_libraries(
librepcb_core
PUBLIC # LibrePCB
LibrePCB::RustCore
# Third party
Polyclipping::Polyclipping
TypeSafe::TypeSafe
# Qt
${QT}::Concurrent
${QT}::Core
${QT}::Gui
${QT}::Network
${QT}::PrintSupport
${QT}::Sql
${QT}::Svg
# Link with -lproc on SunOS / Solaris / Illumos
# This is required for proc_get_psinfo
$<$<STREQUAL:$<PLATFORM_ID>,SunOS>:proc>
# On Windows, NetUserGetInfo() requires to link with netapi32.dll.
$<$<STREQUAL:$<PLATFORM_ID>,Windows>:netapi32>
)
# Alias to namespaced variant
add_library(LibrePCB::Core ALIAS librepcb_core)