[xc7] Retry TORC_ROOT
diff --git a/.cirrus.yml b/.cirrus.yml
index 40b335d..6c1a879 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -5,7 +5,7 @@
     memory: 16
     dockerfile: .cirrus/Dockerfile.ubuntu16.04
 
-  build_script: mkdir build && cd build && cmake .. -DARCH=all -DTRELLIS_ROOT=/usr/local/src/prjtrellis -DTORC_ROOT=/usr/local/src/torc -DBUILD_TESTS=on && make -j $(nproc)
+  build_script: mkdir build && cd build && cmake .. -DARCH=all -DTRELLIS_ROOT=/usr/local/src/prjtrellis -DTORC_ROOT=/usr/local/src/torc/src -DBUILD_TESTS=on && make -j $(nproc)
   test_generic_script: cd build && ./nextpnr-generic-test
   test_ice40_script: cd build && ./nextpnr-ice40-test
   smoketest_ice40_script: export NEXTPNR=$(pwd)/build/nextpnr-ice40 && cd ice40/smoketest/attosoc && ./smoketest.sh
diff --git a/xc7/arch.cc b/xc7/arch.cc
index 786163e..2304cd7 100644
--- a/xc7/arch.cc
+++ b/xc7/arch.cc
@@ -350,7 +350,7 @@
 Arch::Arch(ArchArgs args) : args(args)
 {
     std::stringstream ss;
-    ss << TORC_ROOT << "/torc/src/torc";
+    ss << TORC_ROOT << "/src/torc";
     torc::common::DirectoryTree directoryTree(ss.str().c_str());
     if (args.type == ArchArgs::Z020) {
         torc_info = std::unique_ptr<TorcInfo>(new TorcInfo(this, "xc7z020", args.package));
diff --git a/xc7/family.cmake b/xc7/family.cmake
index 99eb21e..cf917db 100644
--- a/xc7/family.cmake
+++ b/xc7/family.cmake
@@ -25,81 +25,81 @@
                       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/torc/src)
     find_package(Boost REQUIRED COMPONENTS serialization iostreams ${boost_libs} ${boost_python_lib})
 
-    set(TORC_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
+    set(TORC_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/torc)
 endif()
 
 target_compile_definitions(nextpnr-${family} PRIVATE -DTORC_ROOT="${TORC_ROOT}")
-target_include_directories(nextpnr-${family} PUBLIC ${TORC_ROOT}/torc/src)
+target_include_directories(nextpnr-${family} PUBLIC ${TORC_ROOT}/src)
 if (BUILD_TESTS)
     target_compile_definitions(nextpnr-${family}-test PRIVATE -DTORC_ROOT="${TORC_ROOT}")
-    target_include_directories(nextpnr-${family}-test PUBLIC ${TORC_ROOT}/torc/src)
+    target_include_directories(nextpnr-${family}-test PUBLIC ${TORC_ROOT}/src)
 endif()
 if (BUILD_GUI)
-    target_include_directories(gui_${family} PUBLIC ${TORC_ROOT}/torc/src)
+    target_include_directories(gui_${family} PUBLIC ${TORC_ROOT}/src)
 endif()
 
 set(TORC_OBJS
-    ${TORC_ROOT}/torc/src/torc/architecture/Arc.o
-    ${TORC_ROOT}/torc/src/torc/architecture/ArcUsage.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Array.o
-    ${TORC_ROOT}/torc/src/torc/architecture/DDB.o
-    ${TORC_ROOT}/torc/src/torc/architecture/DDBConsoleStreams.o
-    ${TORC_ROOT}/torc/src/torc/architecture/DDBStreamHelper.o
-    ${TORC_ROOT}/torc/src/torc/architecture/DigestStream.o
-    ${TORC_ROOT}/torc/src/torc/architecture/ExtendedWireInfo.o
-    ${TORC_ROOT}/torc/src/torc/architecture/InstancePin.o
-    ${TORC_ROOT}/torc/src/torc/architecture/OutputStreamHelpers.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Package.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Pad.o
-    ${TORC_ROOT}/torc/src/torc/architecture/PrimitiveConn.o
-    ${TORC_ROOT}/torc/src/torc/architecture/PrimitiveDef.o
-    ${TORC_ROOT}/torc/src/torc/architecture/PrimitiveElement.o
-    ${TORC_ROOT}/torc/src/torc/architecture/PrimitiveElementPin.o
-    ${TORC_ROOT}/torc/src/torc/architecture/PrimitivePin.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Segments.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Site.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Sites.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Tiles.o
-    ${TORC_ROOT}/torc/src/torc/architecture/TileInfo.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Tilewire.o
-    ${TORC_ROOT}/torc/src/torc/architecture/Versions.o
-    ${TORC_ROOT}/torc/src/torc/architecture/VprExporter.o
-    ${TORC_ROOT}/torc/src/torc/architecture/WireInfo.o
-    ${TORC_ROOT}/torc/src/torc/architecture/WireUsage.o
-    ${TORC_ROOT}/torc/src/torc/architecture/XdlImporter.o
-    ${TORC_ROOT}/torc/src/torc/architecture/XilinxDatabaseTypes.o
+    ${TORC_ROOT}/src/torc/architecture/Arc.o
+    ${TORC_ROOT}/src/torc/architecture/ArcUsage.o
+    ${TORC_ROOT}/src/torc/architecture/Array.o
+    ${TORC_ROOT}/src/torc/architecture/DDB.o
+    ${TORC_ROOT}/src/torc/architecture/DDBConsoleStreams.o
+    ${TORC_ROOT}/src/torc/architecture/DDBStreamHelper.o
+    ${TORC_ROOT}/src/torc/architecture/DigestStream.o
+    ${TORC_ROOT}/src/torc/architecture/ExtendedWireInfo.o
+    ${TORC_ROOT}/src/torc/architecture/InstancePin.o
+    ${TORC_ROOT}/src/torc/architecture/OutputStreamHelpers.o
+    ${TORC_ROOT}/src/torc/architecture/Package.o
+    ${TORC_ROOT}/src/torc/architecture/Pad.o
+    ${TORC_ROOT}/src/torc/architecture/PrimitiveConn.o
+    ${TORC_ROOT}/src/torc/architecture/PrimitiveDef.o
+    ${TORC_ROOT}/src/torc/architecture/PrimitiveElement.o
+    ${TORC_ROOT}/src/torc/architecture/PrimitiveElementPin.o
+    ${TORC_ROOT}/src/torc/architecture/PrimitivePin.o
+    ${TORC_ROOT}/src/torc/architecture/Segments.o
+    ${TORC_ROOT}/src/torc/architecture/Site.o
+    ${TORC_ROOT}/src/torc/architecture/Sites.o
+    ${TORC_ROOT}/src/torc/architecture/Tiles.o
+    ${TORC_ROOT}/src/torc/architecture/TileInfo.o
+    ${TORC_ROOT}/src/torc/architecture/Tilewire.o
+    ${TORC_ROOT}/src/torc/architecture/Versions.o
+    ${TORC_ROOT}/src/torc/architecture/VprExporter.o
+    ${TORC_ROOT}/src/torc/architecture/WireInfo.o
+    ${TORC_ROOT}/src/torc/architecture/WireUsage.o
+    ${TORC_ROOT}/src/torc/architecture/XdlImporter.o
+    ${TORC_ROOT}/src/torc/architecture/XilinxDatabaseTypes.o
 
-    ${TORC_ROOT}/torc/src/torc/common/Annotated.o
-    ${TORC_ROOT}/torc/src/torc/common/DeviceDesignator.o
-	${TORC_ROOT}/torc/src/torc/common/Devices.o
-	${TORC_ROOT}/torc/src/torc/common/DirectoryTree.o
-	${TORC_ROOT}/torc/src/torc/common/DottedVersion.o
-	${TORC_ROOT}/torc/src/torc/common/NullOutputStream.o
+    ${TORC_ROOT}/src/torc/common/Annotated.o
+    ${TORC_ROOT}/src/torc/common/DeviceDesignator.o
+	${TORC_ROOT}/src/torc/common/Devices.o
+	${TORC_ROOT}/src/torc/common/DirectoryTree.o
+	${TORC_ROOT}/src/torc/common/DottedVersion.o
+	${TORC_ROOT}/src/torc/common/NullOutputStream.o
 
-    ${TORC_ROOT}/torc/src/torc/externals/zlib/zfstream.o
+    ${TORC_ROOT}/src/torc/externals/zlib/zfstream.o
     z
 
-    ${TORC_ROOT}/torc/src/torc/physical/Circuit.o
-    ${TORC_ROOT}/torc/src/torc/physical/ConfigMap.o
-    ${TORC_ROOT}/torc/src/torc/physical/Config.o
-    ${TORC_ROOT}/torc/src/torc/physical/Design.o
-    ${TORC_ROOT}/torc/src/torc/physical/Factory.o
-    ${TORC_ROOT}/torc/src/torc/physical/Instance.o
-    ${TORC_ROOT}/torc/src/torc/physical/InstancePin.o
-    ${TORC_ROOT}/torc/src/torc/physical/InstanceReference.o
-    ${TORC_ROOT}/torc/src/torc/physical/Module.o
-    ${TORC_ROOT}/torc/src/torc/physical/ModuleTransformer.o
-    ${TORC_ROOT}/torc/src/torc/physical/Named.o
-    ${TORC_ROOT}/torc/src/torc/physical/Net.o
-    ${TORC_ROOT}/torc/src/torc/physical/OutputStreamHelpers.o
-    ${TORC_ROOT}/torc/src/torc/physical/Pip.o
-    ${TORC_ROOT}/torc/src/torc/physical/Port.o
-    ${TORC_ROOT}/torc/src/torc/physical/Progenitor.o
-    ${TORC_ROOT}/torc/src/torc/physical/Progeny.o
-    ${TORC_ROOT}/torc/src/torc/physical/Renamable.o
-    ${TORC_ROOT}/torc/src/torc/physical/Routethrough.o
-    ${TORC_ROOT}/torc/src/torc/physical/TilewirePlaceholder.o
-    ${TORC_ROOT}/torc/src/torc/physical/XdlExporter.o
+    ${TORC_ROOT}/src/torc/physical/Circuit.o
+    ${TORC_ROOT}/src/torc/physical/ConfigMap.o
+    ${TORC_ROOT}/src/torc/physical/Config.o
+    ${TORC_ROOT}/src/torc/physical/Design.o
+    ${TORC_ROOT}/src/torc/physical/Factory.o
+    ${TORC_ROOT}/src/torc/physical/Instance.o
+    ${TORC_ROOT}/src/torc/physical/InstancePin.o
+    ${TORC_ROOT}/src/torc/physical/InstanceReference.o
+    ${TORC_ROOT}/src/torc/physical/Module.o
+    ${TORC_ROOT}/src/torc/physical/ModuleTransformer.o
+    ${TORC_ROOT}/src/torc/physical/Named.o
+    ${TORC_ROOT}/src/torc/physical/Net.o
+    ${TORC_ROOT}/src/torc/physical/OutputStreamHelpers.o
+    ${TORC_ROOT}/src/torc/physical/Pip.o
+    ${TORC_ROOT}/src/torc/physical/Port.o
+    ${TORC_ROOT}/src/torc/physical/Progenitor.o
+    ${TORC_ROOT}/src/torc/physical/Progeny.o
+    ${TORC_ROOT}/src/torc/physical/Renamable.o
+    ${TORC_ROOT}/src/torc/physical/Routethrough.o
+    ${TORC_ROOT}/src/torc/physical/TilewirePlaceholder.o
+    ${TORC_ROOT}/src/torc/physical/XdlExporter.o
 )
 
 target_link_libraries(nextpnr-${family} PRIVATE ${TORC_OBJS})