aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-06-12 19:56:03 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-06-12 19:56:03 +0200
commit9953012154f18ea51ff9216529089715ba79fb41 (patch)
tree3f5c40b3b490d4c526f887965eaaf513bf75c71b
parent301136db033e6696b7d606f9833474fdd5e77aac (diff)
downloadnextpnr-9953012154f18ea51ff9216529089715ba79fb41.tar.gz
nextpnr-9953012154f18ea51ff9216529089715ba79fb41.tar.bz2
nextpnr-9953012154f18ea51ff9216529089715ba79fb41.zip
reveresed logic for enabling main file, and made tests link arch files
-rw-r--r--CMakeLists.txt18
-rw-r--r--common/pybindings.cc4
-rw-r--r--dummy/main.cc2
-rw-r--r--gui/mainwindow.cc37
-rw-r--r--ice40/main.cc2
5 files changed, 45 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b0976d9a..83221f9d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -82,33 +82,35 @@ set(CMAKE_BUILD_TYPE Debug)
foreach (family ${FAMILIES})
string(TOUPPER ${family} ufamily)
aux_source_directory(${family}/ ${ufamily}_FILES)
+ aux_source_directory(tests/${family}/ ${ufamily}_TEST_FILES)
# Add the CLI binary target
add_executable(nextpnr-${family} ${COMMON_FILES} ${${ufamily}_FILES} ${GUI_SOURCE_FILES})
+ target_compile_definitions(nextpnr-${family} PRIVATE MAIN_EXECUTABLE)
+
# Add the importable Python module target
PYTHON_ADD_MODULE(nextpnrpy_${family} ${COMMON_FILES} ${${ufamily}_FILES})
- target_compile_definitions(nextpnrpy_${family} PRIVATE PYTHON_MODULE)
# Add any new per-architecture targets here
+ add_executable(nextpnr-${family}-test ${${ufamily}_TEST_FILES} ${COMMON_FILES} ${${ufamily}_FILES})
+ target_link_libraries(nextpnr-${family}-test PRIVATE gtest_main)
+ add_test(${family}-test ${CMAKE_CURRENT_BINARY_DIR}/nextpnr-${family}-test)
+
# Set ${family_targets} to the list of targets being build for this family
- set(family_targets nextpnr-${family} nextpnrpy_${family})
+ set(family_targets nextpnr-${family} nextpnrpy_${family} nextpnr-${family}-test)
# Include the family-specific CMakeFile
include(${family}/family.cmake)
foreach (target ${family_targets})
# Include family-specific source files to all family targets and set defines appropriately
target_include_directories(${target} PRIVATE ${family}/)
- target_compile_definitions(${target} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family} ARCH_${ufamily} ARCHNAME=${family} -DQT_NO_KEYWORDS)
+ target_compile_definitions(${target} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family} ARCH_${ufamily} ARCHNAME=${family} QT_NO_KEYWORDS)
target_link_libraries(${target} LINK_PUBLIC ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${GUI_LIBRARY_FILES})
endforeach (target)
-
- add_executable(nextpnr-${family}-test "")
- target_sources(nextpnr-${family}-test PRIVATE tests/${family}/main.cpp)
- target_link_libraries(nextpnr-${family}-test PRIVATE gtest_main)
- add_test(${family}-test ${CMAKE_CURRENT_BINARY_DIR}/nextpnr-${family}-test)
endforeach (family)
file(GLOB_RECURSE CLANGFORMAT_FILES *.cc *.h)
string(REGEX REPLACE "[^;]*/ice40/chipdbs/chipdb-[^;]*.cc" "" CLANGFORMAT_FILES "${CLANGFORMAT_FILES}")
string(REGEX REPLACE "[^;]*/3rdparty[^;]*" "" CLANGFORMAT_FILES "${CLANGFORMAT_FILES}")
+string(REGEX REPLACE "[^;]*/generated[^;]*" "" CLANGFORMAT_FILES "${CLANGFORMAT_FILES}")
add_custom_target(
clangformat
diff --git a/common/pybindings.cc b/common/pybindings.cc
index 7c43c84f..761d6571 100644
--- a/common/pybindings.cc
+++ b/common/pybindings.cc
@@ -140,7 +140,7 @@ static wchar_t *program;
void init_python(const char *executable)
{
-#ifndef PYTHON_MODULE
+#ifdef MAIN_EXECUTABLE
program = Py_DecodeLocale(executable, NULL);
if (program == NULL) {
fprintf(stderr, "Fatal error: cannot decode executable filename\n");
@@ -162,7 +162,7 @@ void init_python(const char *executable)
void deinit_python()
{
-#ifndef PYTHON_MODULE
+#ifdef MAIN_EXECUTABLE
Py_Finalize();
PyMem_RawFree(program);
#endif
diff --git a/dummy/main.cc b/dummy/main.cc
index 3b9e6ba3..7aa2f08f 100644
--- a/dummy/main.cc
+++ b/dummy/main.cc
@@ -17,7 +17,7 @@
*
*/
-#ifndef PYTHON_MODULE
+#ifdef MAIN_EXECUTABLE
#include <QApplication>
#include "mainwindow.h"
diff --git a/gui/mainwindow.cc b/gui/mainwindow.cc
index c436fd6c..bae02813 100644
--- a/gui/mainwindow.cc
+++ b/gui/mainwindow.cc
@@ -18,16 +18,41 @@ MainWindow::MainWindow(Design *_design, QWidget *parent)
ui->setupUi(this);
ui->treeWidget->setColumnCount(1);
ui->treeWidget->setHeaderLabel(QString("Items"));
- QTreeWidgetItem *belroot = new QTreeWidgetItem(ui->treeWidget);
- belroot->setText(0, QString("Bels"));
- ui->treeWidget->insertTopLevelItem(0, belroot);
- QList<QTreeWidgetItem *> items;
+
+ QTreeWidgetItem *bel_root = new QTreeWidgetItem(ui->treeWidget);
+ bel_root->setText(0, QString("Bels"));
+ ui->treeWidget->insertTopLevelItem(0, bel_root);
+ QList<QTreeWidgetItem *> bel_items;
for (auto bel : design->chip.getBels()) {
auto name = design->chip.getBelName(bel);
- items.append(new QTreeWidgetItem((QTreeWidget *)nullptr,
+ bel_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr,
+ QStringList(QString(name.c_str()))));
+ }
+ bel_root->addChildren(bel_items);
+
+ QTreeWidgetItem *wire_root = new QTreeWidgetItem(ui->treeWidget);
+ QList<QTreeWidgetItem *> wire_items;
+ wire_root->setText(0, QString("Wires"));
+ ui->treeWidget->insertTopLevelItem(0, wire_root);
+ for (auto wire : design->chip.getWires()) {
+ auto name = design->chip.getWireName(wire);
+ wire_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr,
QStringList(QString(name.c_str()))));
}
- belroot->addChildren(items);
+ wire_root->addChildren(wire_items);
+
+ QTreeWidgetItem *pip_root = new QTreeWidgetItem(ui->treeWidget);
+ QList<QTreeWidgetItem *> pip_items;
+ pip_root->setText(0, QString("Pips"));
+ ui->treeWidget->insertTopLevelItem(0, pip_root);
+ for (auto pip : design->chip.getPips()) {
+ auto name = design->chip.getPipName(pip);
+ pip_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr,
+ QStringList(QString(name.c_str()))));
+ }
+ pip_root->addChildren(pip_items);
+
+
PyImport_ImportModule("emb");
write = [this](std::string s) {
diff --git a/ice40/main.cc b/ice40/main.cc
index 0e989819..c89079cf 100644
--- a/ice40/main.cc
+++ b/ice40/main.cc
@@ -17,7 +17,7 @@
*
*/
-#ifndef PYTHON_MODULE
+#ifdef MAIN_EXECUTABLE
#include <QApplication>
#include <boost/filesystem/convenience.hpp>