More on build: proper library versioning, rc file used through RC_FILE, deployment on Linux.

This commit is contained in:
Matthias Koefferlein 2017-08-27 17:44:41 +02:00
parent bbac8fe19e
commit 992307a915
10 changed files with 66 additions and 55 deletions

View File

@ -183,6 +183,15 @@ done
echo "Scanning installation .." echo "Scanning installation .."
echo "" echo ""
# Import version info
. ./version.sh
echo "Version Info:"
echo " version = $KLAYOUT_VERSION"
echo " date = $KLAYOUT_VERSION_DATE"
echo " rev = $KLAYOUT_VERSION_REV"
echo ""
# if not given, try to detect the qt major version to use # if not given, try to detect the qt major version to use
if [ "$HAVE_QT5" = "" ]; then if [ "$HAVE_QT5" = "" ]; then
qt_major=`$QMAKE -v | grep 'Using Qt version' | sed 's/.*version *\([0-9][0-9]*\).*/\1/'` qt_major=`$QMAKE -v | grep 'Using Qt version' | sed 's/.*version *\([0-9][0-9]*\).*/\1/'`
@ -451,6 +460,9 @@ fi
$QMAKE -v $QMAKE -v
# Force a minimum rebuild because of version info
touch src/version/version.h
qmake_cmd="$QMAKE $CURR_DIR/src/klayout.pro -recursive \ qmake_cmd="$QMAKE $CURR_DIR/src/klayout.pro -recursive \
CONFIG+=$CONFIG \ CONFIG+=$CONFIG \
RUBYLIBFILE=$RUBYLIBFILE \ RUBYLIBFILE=$RUBYLIBFILE \
@ -465,6 +477,9 @@ qmake_cmd="$QMAKE $CURR_DIR/src/klayout.pro -recursive \
HAVE_64BIT_COORD=$HAVE_64BIT_COORD \ HAVE_64BIT_COORD=$HAVE_64BIT_COORD \
HAVE_QT5=$HAVE_QT5 \ HAVE_QT5=$HAVE_QT5 \
PREFIX=$BIN \ PREFIX=$BIN \
KLAYOUT_VERSION=$KLAYOUT_VERSION \
KLAYOUT_VERSION_DATE=$KLAYOUT_VERSION_DATE \
KLAYOUT_VERSION_REV=$KLAYOUT_VERSION_REV \
" "
echo $qmake_cmd echo $qmake_cmd

View File

@ -10,13 +10,13 @@ include($$PWD/../../lib_ut.pri)
SOURCES = \ SOURCES = \
bdBasicTests.cc \ bdBasicTests.cc \
bdConverterTests.cc \ bdConverterTests.cc \
bdStrm2txtTests.cc \ bdStrm2txtTests.cc \
bdStrmclipTests.cc \ bdStrmclipTests.cc \
bdStrmcmpTests.cc \ bdStrmcmpTests.cc \
bdStrmxorTests.cc \ bdStrmxorTests.cc \
INCLUDEPATH += $$BD_INC $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAY_INC $$UT_INC INCLUDEPATH += $$BD_INC $$DB_INC $$TL_INC $$GSI_INC $$UT_INC
DEPENDPATH += $$BD_INC $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAY_INC $$UT_INC DEPENDPATH += $$BD_INC $$DB_INC $$TL_INC $$GSI_INC $$UT_INC
LIBS += -L$$DESTDIR_UT -lklayout_bd -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_lay -lklayout_ut LIBS += -L$$DESTDIR_UT -lklayout_bd -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_ut

View File

@ -63,8 +63,8 @@ DEPENDPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
# Note: this accounts for UI-generated headers placed into the output folders in # Note: this accounts for UI-generated headers placed into the output folders in
# shadow builds: # shadow builds:
INCLUDEPATH += $$DESTDIR/laybasic INCLUDEPATH += $$DESTDIR/laybasic/laybasic
DEPENDPATH += $$DESTDIR/laybasic DEPENDPATH += $$DESTDIR/laybasic/laybasic
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_db LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_db

View File

@ -75,12 +75,12 @@ DEPENDPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAY_INC $$DB_INC $$RDB_INC $$A
# Note: this accounts for UI-generated headers placed into the output folders in # Note: this accounts for UI-generated headers placed into the output folders in
# shadow builds: # shadow builds:
INCLUDEPATH += $$DESTDIR/ext $$DESTDIR/laybasic INCLUDEPATH += $$DESTDIR/ext/ext $$DESTDIR/laybasic/laybasic
DEPENDPATH += $$DESTDIR/ext $$DESTDIR/laybasic DEPENDPATH += $$DESTDIR/ext/ext $$DESTDIR/laybasic/laybasic
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_db -lklayout_rdb -lklayout_ant -lklayout_edt LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_db -lklayout_rdb -lklayout_ant -lklayout_edt
# TODO: ideally this should not be there: # TODO: ideally this should not be there:
INCLUDEPATH += $$DESTDIR/lay INCLUDEPATH += $$DESTDIR/lay/lay
DEPENDPATH += $$DESTDIR/lay DEPENDPATH += $$DESTDIR/lay/lay
LIBS += -L$$DESTDIR -lklayout_lay LIBS += -L$$DESTDIR -lklayout_lay

View File

@ -16,13 +16,13 @@ DEPENDPATH += $$EXT_INC $$TL_INC $$LAYBASIC_INC $$DB_INC $$GSI_INC $$UT_INC
# Note: this accounts for UI-generated headers placed into the output folders in # Note: this accounts for UI-generated headers placed into the output folders in
# shadow builds: # shadow builds:
INCLUDEPATH += $$DESTDIR/ext $$DESTDIR/laybasic INCLUDEPATH += $$DESTDIR_UT/ext/ext $$DESTDIR_UT/laybasic/laybasic
DEPENDPATH += $$DESTDIR/ext $$DESTDIR/laybasic DEPENDPATH += $$DESTDIR_UT/ext/ext $$DESTDIR_UT/laybasic/laybasic
LIBS += -L$$DESTDIR_UT -lklayout_ext -lklayout_laybasic -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_ut LIBS += -L$$DESTDIR_UT -lklayout_ext -lklayout_laybasic -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_ut
# TODO: ideally this should not be there: # TODO: ideally this should not be there:
INCLUDEPATH += $$DESTDIR/lay INCLUDEPATH += $$DESTDIR_UT/lay/lay
DEPENDPATH += $$DESTDIR/lay DEPENDPATH += $$DESTDIR_UT/lay/lay
LIBS += -L$$DESTDIR -lklayout_lay LIBS += -L$$DESTDIR_UT -lklayout_lay

View File

@ -84,6 +84,8 @@ win32 {
} }
DEFINES += \ DEFINES += \
KLAYOUT_VERSION=$$(KLAYOUT_VERSION) \ KLAYOUT_VERSION=$$KLAYOUT_VERSION \
KLAYOUT_VERSION_REV=$$(KLAYOUT_VERSION_REV) \ KLAYOUT_VERSION_REV=$$KLAYOUT_VERSION_REV \
KLAYOUT_VERSION_DATE=$$(KLAYOUT_VERSION_DATE) \ KLAYOUT_VERSION_DATE=$$KLAYOUT_VERSION_DATE \
VERSION = $$KLAYOUT_VERSION

View File

@ -9,6 +9,7 @@ SUBDIRS = \
tl/tl \ tl/tl \
tl/unit_tests \ tl/unit_tests \
gsi/gsi \ gsi/gsi \
gsi/gsi_test \
gsi/unit_tests \ gsi/unit_tests \
db/db \ db/db \
db/unit_tests \ db/unit_tests \
@ -26,23 +27,32 @@ SUBDIRS = \
buddies \ buddies \
drc \ drc \
LANG_DEPENDS =
equals(HAVE_RUBY, "1") { equals(HAVE_RUBY, "1") {
SUBDIRS += rba SUBDIRS += rba/rba rba/unit_tests
rba.depends += gsi/gsi ut rba.depends += gsi/gsi
LANG_DEPENDS += rba/rba
rba-unit_tests.depends += ut gsi/gsi_test
} else { } else {
SUBDIRS += rbastub SUBDIRS += rbastub
rbastub.depends += gsi/gsi rbastub.depends += gsi/gsi
LANG_DEPENDS += rbastub
} }
equals(HAVE_PYTHON, "1") { equals(HAVE_PYTHON, "1") {
SUBDIRS += pya SUBDIRS += pya/pya pya/unit_tests
pya.depends += gsi/gsi ut pya.depends += gsi/gsi
LANG_DEPENDS += pya/pya
pya-unit_tests.depends += ut gsi/gsi_test
} else { } else {
SUBDIRS += pyastub SUBDIRS += pyastub
pyastub.depends += gsi/gsi pyastub.depends += gsi/gsi
LANG_DEPENDS += pyastub
} }
gsi-gsi.depends += tl/tl gsi-gsi.depends += tl/tl
gsi-gsi_test.depends += tl/tl gsi/gsi
db-db.depends += gsi/gsi db-db.depends += gsi/gsi
rdb.depends += db/db ut rdb.depends += db/db ut
laybasic.depends += rdb laybasic.depends += rdb
@ -51,35 +61,22 @@ img.depends += laybasic
edt.depends += laybasic edt.depends += laybasic
drc.depends += rdb lym drc.depends += rdb lym
lym.depends += gsi/gsi ut lym.depends += gsi/gsi ut $$LANG_DEPENDS
equals(HAVE_RUBY, "1") {
lym.depends += rba
} else {
lym.depends += rbastub
}
equals(HAVE_PYTHON, "1") {
lym.depends += pya
} else {
lym.depends += pyastub
}
lay.depends += laybasic ant img edt lym lay.depends += laybasic ant img edt lym
ext.depends += lay ext.depends += lay
lib.depends += db/db ut lib.depends += db/db ut
buddies.depends += db/db ut buddies.depends += db/db ut
ut.depends += db/db $$LANG_DEPENDS
equals(HAVE_QTBINDINGS, "1") { equals(HAVE_QTBINDINGS, "1") {
SUBDIRS += gsiqt SUBDIRS += gsiqt
gsiqt.depends += gsi/gsi gsiqt.depends += gsi/gsi
laybasic.depends += gsiqt laybasic.depends += gsiqt
lay.depends += gsiqt
} }
ut.depends += db/db
# YES. It's tl-unit_tests (for tl/unit_tests) # YES. It's tl-unit_tests (for tl/unit_tests)
tl-unit_tests.depends += ut tl-unit_tests.depends += ut
gsi-unit_tests.depends += ut gsi-unit_tests.depends += ut gsi/gsi_test
db-unit_tests.depends += ut db-unit_tests.depends += ut
plugins.depends += lay ext lib ut plugins.depends += lay ext lib ut

View File

@ -18,14 +18,5 @@ SOURCES = \
RESOURCES = \ RESOURCES = \
win32 { win32 {
RC_FILE = $$PWD/klayout.rc
windres.target = klayout_rc.o
windres.depends = $$PWD/klayout.rc
windres.commands = windres $$windres.depends $$windres.target
PRE_TARGETDEPS += klayout_rc.o
QMAKE_EXTRA_TARGETS += windres
LIBS += $$windres.target
} }

View File

@ -181,8 +181,8 @@ win32 {
# Note: this accounts for UI-generated headers placed into the output folders in # Note: this accounts for UI-generated headers placed into the output folders in
# shadow builds: # shadow builds:
INCLUDEPATH += $$DESTDIR/laybasic INCLUDEPATH += $$DESTDIR/laybasic/laybasic
DEPENDPATH += $$DESTDIR/laybasic DEPENDPATH += $$DESTDIR/laybasic/laybasic
INCLUDEPATH += $$GSIQT_INC INCLUDEPATH += $$GSIQT_INC
DEPENDPATH += $$GSIQT_INC DEPENDPATH += $$GSIQT_INC

View File

@ -5,8 +5,14 @@ TEMPLATE = lib
inst_target.path = $$PREFIX inst_target.path = $$PREFIX
win32 { win32 {
inst_target.files = $$DESTDIR/$${TARGET}.dll
inst_target.files = $(DESTDIR_TARGET)
} else { } else {
inst_target.files = $$DESTDIR/lib$${TARGET}.so
inst_target.files = $$DESTDIR/$(TARGET)
inst_target.extra = ln -s $(TARGET) $(TARGET0) && ln -s $(TARGET) $(TARGET1) && ln -s $(TARGET) $(TARGET2)
} }
INSTALLS = inst_target INSTALLS = inst_target