Initial commit.

This commit is contained in:
andreili 2023-06-24 23:45:39 +02:00
commit ceeadc8ec3
27 changed files with 2746 additions and 0 deletions

View File

@ -0,0 +1 @@
EBUILD or-tools-9999.ebuild 652 BLAKE2B 40b9a246d71cd9d708d99d1a0a3afb9006260005577b68abd6afb4e5442306825d428f3cc2c365b8f099990873b4d732d4607b16bdcd7a32fd3fc052afb22dc1 SHA512 b2654321531a0c50a68522ca61bdba7132f33b92b52b4c2954e71f2c66d7003050df719572ce0cb0e2dd2ccba556836d7d8937515e309acd58bf5f4b8a4750c3

View File

@ -0,0 +1,36 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..11} )
inherit cmake python-any-r1 git-r3
DESCRIPTION="Google Optimization Tools"
#SRC_URI="https://github.com/The-OpenROAD-Project/OpenROAD/archive/refs/tags/v${PV}.tar.gz"
#S="${WORKDIR}/OpenROAD-${PV}"
EGIT_REPO_URI="https://github.com/google/or-tools.git"
EGIT_SUBMODULES=( '*' )
KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86"
SLOT="0"
IUSE=""
DEPEND="
dev-libs/protobuf
dev-cpp/abseil-cpp
dev-libs/re2
sci-libs/coinor-cbc
"
RDEPEND="
${DEPEND}
"
BDEPEND="
dev-util/cmake
"
src_configure() {
local mycmakeargs=(
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/"
-DUSE_SCIP=OFF
)
cmake_src_configure
}

2
metadata/layout.conf Normal file
View File

@ -0,0 +1,2 @@
masters = gentoo
auto-sync = false

3
profiles/categories Normal file
View File

@ -0,0 +1,3 @@
dev-cpp
sci-electronics
sci-libs

1
profiles/repo_name Normal file
View File

@ -0,0 +1 @@
andreil

View File

@ -0,0 +1,4 @@
AUX openroad_build.patch 21914 BLAKE2B 8788cb36b6bb10b0980a8635ff376cf04aceeff00946bf00d5d1fbe4589c9e27c171eeb8d6940e56b658b2e91baca0cadaa073e57d9a288a4dc4618bb6b8237a SHA512 574602d115497b216d7866d281249a1c7f7e738b0b87f2e13f4add463cf93a424edc022f6e634a56bc897fec03e25315afde10633b772b982daa6bec4b7d2344
AUX openroad_build1.patch 8442 BLAKE2B 4dd9e5d99b55937289a59b0510697f6a600b0eb3917cfe02bc8b271fa818198081940999152a9d782753ea78cec8c42ed4ea92d7541a04b7533c5acb3294e0d3 SHA512 0ff3e8b01c40386e916053592f41d1a8e746a00aeae763accce5af92efd835e1fd6815efa70ff7b3a23692b5ad1965e8839aa23e72be0d28f26859dfd47d0ac4
AUX openroad_build_fix.patch 21139 BLAKE2B 20092858234d951ab70a4377a58c6724042988bb2172af06d3649b03907884150a9a4d3e3f194b644fd41c9ec82178c351963dd47dc0705ee5e828eaf921eade SHA512 3c44242fc22bb264957311cc43c25aed00c4fc38fc1015e9aef0ec6f57dc4bd01dd221dd74ff57d829ac87e30c16afb2d278a8bf6812efe0c6446310d183f375
EBUILD openroad-9999.ebuild 1091 BLAKE2B fb58b14e0b34347321f1e392fdba5a7478b66b05a253c0035c0e3eb10bd3579e02fd4f8ebbb601aed8476de781eea519397761a84c168d7355d98205f8584d40 SHA512 21ff775a6f8ac7b6cbca179b2cd0ab32091e0096cd8db48c249df86bb184c2c84d7275880485301d686d07d4544124436895b57b7f905a56285a41dc743c992f

View File

@ -0,0 +1,538 @@
diff -Naur openroad-2.0_or/src/odb/src/defout/CMakeLists.txt openroad-2.0/src/odb/src/defout/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/defout/CMakeLists.txt 2023-03-23 10:22:03.737758944 +0100
+++ openroad-2.0/src/odb/src/defout/CMakeLists.txt 2023-03-23 10:19:36.508599562 +0100
@@ -1,4 +1,4 @@
-add_library(defout
+add_library(defout STATIC
defout.cpp
defout_impl.cpp
)
diff -Naur openroad-2.0_or/src/odb/src/lefout/CMakeLists.txt openroad-2.0/src/odb/src/lefout/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/lefout/CMakeLists.txt 2023-03-23 10:22:10.718671670 +0100
+++ openroad-2.0/src/odb/src/lefout/CMakeLists.txt 2023-03-23 10:19:50.669422527 +0100
@@ -1,4 +1,4 @@
-add_library(lefout
+add_library(lefout STATIC
lefout.cpp
)
diff -Naur openroad-2.0_or/src/odb/src/zutil/CMakeLists.txt openroad-2.0/src/odb/src/zutil/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/zutil/CMakeLists.txt 2023-03-23 10:21:25.659234991 +0100
+++ openroad-2.0/src/odb/src/zutil/CMakeLists.txt 2023-03-23 10:21:34.254127540 +0100
@@ -1,4 +1,4 @@
-add_library(zutil
+add_library(zutil STATIC
parse.cpp
poly_decomp.cpp
util.cpp
--- openroad-9999_or/src/mpl2/CMakeLists.txt 2023-04-21 13:58:49.157986959 +0200
+++ openroad-9999/src/mpl2/CMakeLists.txt 2023-04-21 13:59:17.817978356 +0200
@@ -93,4 +93,6 @@
gui
)
-add_subdirectory(test/cpp)
\ No newline at end of file
+if (ENABLE_TESTS)
+ add_subdirectory(test/cpp)
+endif()
diff -Naur openroad-9999_or/src/cts/src/HTreeBuilder.cpp openroad-9999/src/cts/src/HTreeBuilder.cpp
--- openroad-9999_or/src/cts/src/HTreeBuilder.cpp 2023-04-21 14:06:49.517807229 +0200
+++ openroad-9999/src/cts/src/HTreeBuilder.cpp 2023-04-21 14:29:09.637380968 +0200
@@ -201,7 +201,7 @@
if (topLevelSinks.size() <= min_clustering_sinks_
|| !(options_->getSinkClustering())) {
Box<int> sinkRegionDbu = clock_.computeSinkRegion();
- logger_->info(CTS, 23, " Original sink region: {}.", sinkRegionDbu);
+ //logger_->info(CTS, 23, " Original sink region: {}.", sinkRegionDbu);
sinkRegion_ = sinkRegionDbu.normalize(1.0 / wireSegmentUnit_);
} else {
@@ -218,7 +218,7 @@
}
sinkRegion_ = clock_.computeSinkRegionClustered(topLevelSinksClustered_);
}
- logger_->info(CTS, 24, " Normalized sink region: {}.", sinkRegion_);
+ //logger_->info(CTS, 24, " Normalized sink region: {}.", sinkRegion_);
logger_->info(CTS, 25, " Width: {:.4f}.", sinkRegion_.getWidth());
logger_->info(CTS, 26, " Height: {:.4f}.", sinkRegion_.getHeight());
}
diff -Naur openroad-9999_or/src/drt/src/db/tech/frConstraint.h openroad-9999/src/drt/src/db/tech/frConstraint.h
--- openroad-9999_or/src/drt/src/db/tech/frConstraint.h 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/db/tech/frConstraint.h 2023-04-21 14:52:29.356918592 +0200
@@ -552,7 +552,7 @@
numCuts,
width,
cutDistance,
- connection,
+ int(connection),
length,
distance);
}
@@ -2163,7 +2163,7 @@
"{} edgeLength {} includeLShape {} minLength {} exceptNotch {} "
"notchLength {} exceptSameNet {} exceptSameMetal {} sameXY {} "
"cornerToCorner {}",
- cornerType,
+ int(cornerType),
sameMask,
within,
eolWidth,
diff -Naur openroad-9999_or/src/drt/src/dr/FlexDR.cpp openroad-9999/src/drt/src/dr/FlexDR.cpp
--- openroad-9999_or/src/drt/src/dr/FlexDR.cpp 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/dr/FlexDR.cpp 2023-04-21 14:59:11.916792299 +0200
@@ -610,7 +610,7 @@
" Completing {}% with {} violations.",
prev_perc,
getDesign()->getTopBlock()->getNumMarkers());
- logger_->report(" {}.", t);
+ // logger_->report(" {}.", int(t));
}
}
}
@@ -637,7 +637,7 @@
for (int i = 0; i < distWorkerBatches.size(); i++)
sendWorkers(distWorkerBatches.at(i), workersInBatch);
}
- logger_->report(" Received Batches:{}.", t);
+ //logger_->report(" Received Batches:{}.", t);
std::vector<std::pair<int, std::string>> workers;
router_->getWorkerResults(workers);
{
@@ -649,7 +649,7 @@
workers.at(i).second);
}
}
- logger_->report(" Deserialized Batches:{}.", t);
+ //logger_->report(" Deserialized Batches:{}.", t);
}
}
}
@@ -680,7 +680,7 @@
logger_->report(" Completing {}% with {} violations.",
prev_perc,
getDesign()->getTopBlock()->getNumMarkers());
- logger_->report(" {}.", t);
+ //logger_->report(" {}.", t);
}
}
}
diff -Naur openroad-9999_or/src/drt/src/dr/FlexDR_conn.cpp openroad-9999/src/drt/src/dr/FlexDR_conn.cpp
--- openroad-9999_or/src/drt/src/dr/FlexDR_conn.cpp 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/dr/FlexDR_conn.cpp 2023-04-21 14:54:54.186868308 +0200
@@ -1004,8 +1004,8 @@
if (ps->isBeginTruncated()
&& ((currEnd < ps->high() && currEndPs->isEndTruncated())
|| (currEnd > ps->high() && ps->isEndTruncated()))) {
- logger_->warn(
- DRT, 6001, "Path segs were not split: {} and {}", *ps, *currEndPs);
+ /*logger_->warn(
+ DRT, 6001, "Path segs were not split: {} and {}", *ps, *currEndPs);*/
}
hasOverlap = true;
// update local variables
diff -Naur openroad-9999_or/src/drt/src/pa/FlexPA_graphics.cpp openroad-9999/src/drt/src/pa/FlexPA_graphics.cpp
--- openroad-9999_or/src/drt/src/pa/FlexPA_graphics.cpp 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/pa/FlexPA_graphics.cpp 2023-04-21 15:04:32.356718780 +0200
@@ -305,7 +305,7 @@
logger_->info(DRT,
292,
"Marker {} at ({}, {}) ({}, {}).",
- marker->getConstraint()->typeId(),
+ int(marker->getConstraint()->typeId()),
bbox.xMin(),
bbox.yMin(),
bbox.xMax(),
@@ -349,7 +349,7 @@
logger_->info(DRT,
281,
"Marker {} at ({}, {}) ({}, {}).",
- marker->getConstraint()->typeId(),
+ int(marker->getConstraint()->typeId()),
bbox.xMin(),
bbox.yMin(),
bbox.xMax(),
diff -Naur openroad-9999_or/src/grt/src/fastroute/src/utility.cpp openroad-9999/src/grt/src/fastroute/src/utility.cpp
--- openroad-9999_or/src/grt/src/fastroute/src/utility.cpp 2023-04-21 14:06:49.637807168 +0200
+++ openroad-9999/src/grt/src/fastroute/src/utility.cpp 2023-04-21 14:21:46.027519928 +0200
@@ -1431,7 +1431,7 @@
edge.n2,
nodes[edge.n2].x,
nodes[edge.n2].y,
- edge.route.type);
+ int(edge.route.type));
if (edge.len > 0) {
std::string edge_rpt;
for (int i = 0; i <= edge.route.routelen; i++) {
diff -Naur openroad-9999_or/src/dst/src/BalancerConnection.cc openroad-9999/src/dst/src/BalancerConnection.cc
--- openroad-9999_or/src/dst/src/BalancerConnection.cc 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/dst/src/BalancerConnection.cc 2023-04-21 14:33:16.107305933 +0200
@@ -133,13 +133,13 @@
failure = false;
break;
}
- logger_->warn(utl::DST,
+ /*logger_->warn(utl::DST,
204,
"Exception thrown: {}. worker with ip \"{}\" and "
"port \"{}\" will be pushed back the queue.",
ex.what(),
workerAddress,
- port);
+ port);*/
owner_->punishWorker(workerAddress, port);
failed_workers_trials++;
if (failed_workers_trials == MAX_FAILED_WORKERS_TRIALS) {
diff -Naur openroad-9999_or/src/dst/src/LoadBalancer.cc openroad-9999/src/dst/src/LoadBalancer.cc
--- openroad-9999_or/src/dst/src/LoadBalancer.cc 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/dst/src/LoadBalancer.cc 2023-04-21 14:32:36.557316577 +0200
@@ -43,11 +43,11 @@
logger_->info(utl::DST, 7, "Processed {} jobs", jobs_);
auto copy = workers_;
while (!copy.empty()) {
- auto worker = copy.top();
+ /*auto worker = copy.top();
logger_->report("Worker {}/{} handled {} jobs",
worker.ip,
worker.port,
- worker.priority);
+ worker.priority);*/
copy.pop();
}
}
diff -Naur openroad-9999_or/src/mpl/src/ParquetFP/src/Annealer.h openroad-9999/src/mpl/src/ParquetFP/src/Annealer.h
--- openroad-9999_or/src/mpl/src/ParquetFP/src/Annealer.h 2023-03-23 14:05:52.021882291 +0100
+++ openroad-9999/src/mpl/src/ParquetFP/src/Annealer.h 2023-03-23 17:22:11.421619529 +0100
@@ -63,12 +63,12 @@
Annealer() : BaseAnnealer(), _sp(NULL), _spEval(NULL) {}
public:
- Annealer(const Command_Line* const params, DB* const db);
+ Annealer(const Command_Line* const params, DB* const db): BaseAnnealer(),_sp(NULL), _spEval(NULL) {}
- virtual ~Annealer();
- void parseConfig();
+ virtual ~Annealer() {}
+ void parseConfig() {}
- virtual bool go();
+ virtual bool go() {}
void anneal();
virtual bool packOneBlock() { return true; }
@@ -76,8 +76,8 @@
virtual void compactSoln(bool minWL,
bool fixedOutline,
float reqdH,
- float reqdW);
- virtual void takePlfromDB(); // takeSPformDB() + eval()
+ float reqdW) {}
+ virtual void takePlfromDB() {} // takeSPformDB() + eval()
void takeSPfromDB(); // converts the present pl to a seq-pair
void eval(); // just evaluate the current SP and set up required
diff -Naur openroad-9999_or/CMakeLists.txt openroad-9999/CMakeLists.txt
--- openroad-9999_or/CMakeLists.txt 2023-04-21 15:41:59.615941386 +0200
+++ openroad-9999/CMakeLists.txt 2023-04-21 15:51:13.955748347 +0200
@@ -60,6 +60,8 @@
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
endif()
+get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+
# Allow to use external shared boost libraries
option(USE_SYSTEM_BOOST "Use system shared Boost libraries" OFF)
diff -Naur openroad-9999_or/src/dbSta/src/CMakeLists.txt openroad-9999/src/dbSta/src/CMakeLists.txt
--- openroad-9999_or/src/dbSta/src/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dbSta/src/CMakeLists.txt 2023-04-21 17:59:51.078718782 +0200
@@ -35,7 +35,7 @@
include("openroad")
-add_library(dbSta_lib
+add_library(dbSta_lib STATIC
dbNetwork.cc
dbSdcNetwork.cc
dbReadVerilog.cc
diff -Naur openroad-9999_or/src/dbSta/src/dbReadVerilog.cc openroad-9999/src/dbSta/src/dbReadVerilog.cc
--- openroad-9999_or/src/dbSta/src/dbReadVerilog.cc 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dbSta/src/dbReadVerilog.cc 2023-04-21 15:45:45.655855300 +0200
@@ -118,7 +118,7 @@
void
initDbVerilogNetwork(ord::OpenRoad* openroad)
{
- openroad->getVerilogNetwork()->init(openroad->getDbNetwork());
+// openroad->getVerilogNetwork()->init(openroad->getDbNetwork());
}
void
diff -Naur openroad-9999_or/src/dft/src/architect/CMakeLists.txt openroad-9999/src/dft/src/architect/CMakeLists.txt
--- openroad-9999_or/src/dft/src/architect/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dft/src/architect/CMakeLists.txt 2023-04-21 17:59:38.175234868 +0200
@@ -1,4 +1,4 @@
-add_library(dft_architect_lib
+add_library(dft_architect_lib STATIC
# Keep sorted
ScanArchitect.cpp
ScanArchitectHeuristic.cpp
diff -Naur openroad-9999_or/src/dft/src/cells/CMakeLists.txt openroad-9999/src/dft/src/cells/CMakeLists.txt
--- openroad-9999_or/src/dft/src/cells/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dft/src/cells/CMakeLists.txt 2023-04-21 18:00:01.978830679 +0200
@@ -1,4 +1,4 @@
-add_library(dft_cells_lib
+add_library(dft_cells_lib STATIC
# Keep sorted
OneBitScanCell.cpp
ScanCell.cpp
diff -Naur openroad-9999_or/src/dft/src/clock_domain/CMakeLists.txt openroad-9999/src/dft/src/clock_domain/CMakeLists.txt
--- openroad-9999_or/src/dft/src/clock_domain/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dft/src/clock_domain/CMakeLists.txt 2023-04-21 18:00:11.568867245 +0200
@@ -1,4 +1,4 @@
-add_library(dft_clock_domain_lib
+add_library(dft_clock_domain_lib STATIC
# Keep sorted
ClockDomain.cpp
)
diff -Naur openroad-9999_or/src/dft/src/config/CMakeLists.txt openroad-9999/src/dft/src/config/CMakeLists.txt
--- openroad-9999_or/src/dft/src/config/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dft/src/config/CMakeLists.txt 2023-04-21 18:00:30.119403139 +0200
@@ -1,4 +1,4 @@
-add_library(dft_config_lib
+add_library(dft_config_lib STATIC
# Keep sorted
DftConfig.cpp
ScanArchitectConfig.cpp
diff -Naur openroad-9999_or/src/dft/src/replace/CMakeLists.txt openroad-9999/src/dft/src/replace/CMakeLists.txt
--- openroad-9999_or/src/dft/src/replace/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dft/src/replace/CMakeLists.txt 2023-04-21 18:00:39.759381757 +0200
@@ -1,4 +1,4 @@
-add_library(dft_replace_lib
+add_library(dft_replace_lib STATIC
# Keep sorted
ScanReplace.cpp
)
diff -Naur openroad-9999_or/src/dft/src/utils/CMakeLists.txt openroad-9999/src/dft/src/utils/CMakeLists.txt
--- openroad-9999_or/src/dft/src/utils/CMakeLists.txt 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dft/src/utils/CMakeLists.txt 2023-04-21 18:00:49.507931838 +0200
@@ -1,5 +1,4 @@
-
-add_library(dft_utils_lib
+add_library(dft_utils_lib STATIC
# Keep sorted
Utils.cpp
)
diff -Naur openroad-9999_or/src/dpl/CMakeLists.txt openroad-9999/src/dpl/CMakeLists.txt
--- openroad-9999_or/src/dpl/CMakeLists.txt 2023-04-21 15:41:59.375941467 +0200
+++ openroad-9999/src/dpl/CMakeLists.txt 2023-04-21 18:01:03.078139371 +0200
@@ -39,7 +39,7 @@
include("openroad")
-add_library(dpl_lib
+add_library(dpl_lib STATIC
src/Opendp.cpp
src/dbToOpendp.cpp
src/Grid.cpp
diff -Naur openroad-9999_or/src/grt/src/fastroute/CMakeLists.txt openroad-9999/src/grt/src/fastroute/CMakeLists.txt
--- openroad-9999_or/src/grt/src/fastroute/CMakeLists.txt 2023-04-21 15:41:59.485941428 +0200
+++ openroad-9999/src/grt/src/fastroute/CMakeLists.txt 2023-04-21 18:01:14.338218780 +0200
@@ -34,7 +34,7 @@
## POSSIBILITY OF SUCH DAMAGE.
################################################################################
-add_library(FastRoute4.1
+add_library(FastRoute4.1 STATIC
src/FastRoute.cpp
src/RSMT.cpp
src/RipUp.cpp
diff -Naur openroad-9999_or/src/mpl/src/ParquetFP/CMakeLists.txt openroad-9999/src/mpl/src/ParquetFP/CMakeLists.txt
--- openroad-9999_or/src/mpl/src/ParquetFP/CMakeLists.txt 2023-04-21 15:41:59.485941428 +0200
+++ openroad-9999/src/mpl/src/ParquetFP/CMakeLists.txt 2023-04-21 18:08:10.814536239 +0200
@@ -36,7 +36,7 @@
LANGUAGES CXX
)
-add_library(ParquetFP
+add_library(ParquetFP STATIC
src/AnalytSolve.cxx
src/baseannealer.cxx
src/basepacking.cxx
@@ -74,4 +74,3 @@
PUBLIC
src
)
-
diff -Naur openroad-9999_or/src/mpl2/CMakeLists.txt openroad-9999/src/mpl2/CMakeLists.txt
--- openroad-9999_or/src/mpl2/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/mpl2/CMakeLists.txt 2023-04-21 18:02:13.365753142 +0200
@@ -41,7 +41,7 @@
find_package(ortools REQUIRED)
-add_library(mpl2_lib
+add_library(mpl2_lib STATIC
src/rtl_mp.cpp
src/hier_rtlmp.cpp
src/object.cpp
diff -Naur openroad-9999_or/src/odb/CMakeLists.txt openroad-9999/src/odb/CMakeLists.txt
--- openroad-9999_or/src/odb/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/CMakeLists.txt 2023-04-21 18:07:30.576698573 +0200
@@ -86,4 +86,4 @@
target_link_libraries(parseTest
odb
)
-endif()
\ No newline at end of file
+endif()
diff -Naur openroad-9999_or/src/odb/src/cdl/CMakeLists.txt openroad-9999/src/odb/src/cdl/CMakeLists.txt
--- openroad-9999_or/src/odb/src/cdl/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/src/cdl/CMakeLists.txt 2023-04-21 18:02:43.090025816 +0200
@@ -1,4 +1,4 @@
-add_library(cdl
+add_library(cdl STATIC
cdl.cpp
)
diff -Naur openroad-9999_or/src/odb/src/def/CMakeLists.txt openroad-9999/src/odb/src/def/CMakeLists.txt
--- openroad-9999_or/src/odb/src/def/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/src/def/CMakeLists.txt 2023-04-21 18:02:59.486064599 +0200
@@ -13,7 +13,7 @@
COMPILE_FLAGS "--name-prefix=defyy"
)
-add_library(def
+add_library(def STATIC
def/defiAlias.cpp
def/defiAssertion.cpp
def/defiBlockage.cpp
@@ -50,7 +50,7 @@
${BISON_def_parser_OUTPUT_SOURCE}
)
-add_library(defzlib
+add_library(defzlib STATIC
defzlib/defzlib.cpp
)
diff -Naur openroad-9999_or/src/odb/src/lef/CMakeLists.txt openroad-9999/src/odb/src/lef/CMakeLists.txt
--- openroad-9999_or/src/odb/src/lef/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/src/lef/CMakeLists.txt 2023-04-21 18:03:24.243031853 +0200
@@ -11,7 +11,7 @@
############################################################
# Create a library for LEF
############################################################
-add_library(lef
+add_library(lef STATIC
lef/crypt.cpp
lef/lefiArray.cpp
lef/lefiCrossTalk.cpp
@@ -37,7 +37,7 @@
${BISON_lef_parser_OUTPUT_SOURCE}
)
-add_library(lefzlib
+add_library(lefzlib STATIC
lefzlib/lefzlib.cpp
)
diff -Naur openroad-9999_or/src/odb/src/lefin/CMakeLists.txt openroad-9999/src/odb/src/lefin/CMakeLists.txt
--- openroad-9999_or/src/odb/src/lefin/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/src/lefin/CMakeLists.txt 2023-04-21 18:03:35.672994838 +0200
@@ -1,4 +1,4 @@
-add_library(lefin
+add_library(lefin STATIC
lefin.cpp
reader.cpp
lefTechLayerSpacingEolParser.cpp
diff -Naur openroad-9999_or/src/odb/src/swig/common/CMakeLists.txt openroad-9999/src/odb/src/swig/common/CMakeLists.txt
--- openroad-9999_or/src/odb/src/swig/common/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/src/swig/common/CMakeLists.txt 2023-04-21 18:03:46.926574448 +0200
@@ -1,4 +1,4 @@
-add_library(odb_swig_common
+add_library(odb_swig_common STATIC
swig_common.cpp
)
diff -Naur openroad-9999_or/src/odb/src/tm/CMakeLists.txt openroad-9999/src/odb/src/tm/CMakeLists.txt
--- openroad-9999_or/src/odb/src/tm/CMakeLists.txt 2023-04-21 15:41:59.495941425 +0200
+++ openroad-9999/src/odb/src/tm/CMakeLists.txt 2023-04-21 18:03:57.626194045 +0200
@@ -1,4 +1,4 @@
-add_library(tm
+add_library(tm STATIC
ZFactory.cpp
)
diff -Naur openroad-9999_or/src/par/CMakeLists.txt openroad-9999/src/par/CMakeLists.txt
--- openroad-9999_or/src/par/CMakeLists.txt 2023-04-21 15:41:59.505941422 +0200
+++ openroad-9999/src/par/CMakeLists.txt 2023-04-21 18:04:16.189408183 +0200
@@ -37,7 +37,7 @@
find_package(ortools REQUIRED)
-add_library(par_lib
+add_library(par_lib STATIC
src/PartitionMgr.cpp
src/TritonPart.cpp
src/TPHypergraph.cpp
diff -Naur openroad-9999_or/src/ppl/src/munkres/CMakeLists.txt openroad-9999/src/ppl/src/munkres/CMakeLists.txt
--- openroad-9999_or/src/ppl/src/munkres/CMakeLists.txt 2023-04-21 15:41:59.515941419 +0200
+++ openroad-9999/src/ppl/src/munkres/CMakeLists.txt 2023-04-21 18:04:25.519277232 +0200
@@ -1,6 +1,6 @@
project(Munkres)
-add_library(Munkres
+add_library(Munkres STATIC
src/Hungarian.cpp
)
@@ -8,4 +8,3 @@
PUBLIC
src
)
-
diff -Naur openroad-9999_or/src/rcx/src/CMakeLists.txt openroad-9999/src/rcx/src/CMakeLists.txt
--- openroad-9999_or/src/rcx/src/CMakeLists.txt 2023-04-21 15:41:59.525941416 +0200
+++ openroad-9999/src/rcx/src/CMakeLists.txt 2023-04-21 18:04:34.589210494 +0200
@@ -33,7 +33,7 @@
include("openroad")
-add_library(rcx_lib
+add_library(rcx_lib STATIC
ext.cpp
extBench.cpp
extBenchDB.cpp
diff -Naur openroad-9999_or/src/odb/src/db/CMakeLists.txt openroad-9999/src/odb/src/db/CMakeLists.txt
--- openroad-9999_or/src/odb/src/db/CMakeLists.txt 2023-04-21 18:31:25.848987915 +0200
+++ openroad-9999/src/odb/src/db/CMakeLists.txt 2023-04-21 18:31:45.894498140 +0200
@@ -1,4 +1,4 @@
-add_library(db
+add_library(db STATIC
dbBTerm.cpp
dbStream.cpp
dbBTermItr.cpp
diff -Naur openroad-9999_or/src/sta/CMakeLists.txt openroad-9999/src/sta/CMakeLists.txt
--- openroad-9999_or/src/sta/CMakeLists.txt 2023-04-21 18:31:25.908987528 +0200
+++ openroad-9999/src/sta/CMakeLists.txt 2023-04-21 18:32:18.699014507 +0200
@@ -473,7 +473,7 @@
# compatibility with configure
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${STA_HOME}/app)
-add_library(OpenSTA)
+add_library(OpenSTA STATIC)
target_sources(OpenSTA
PRIVATE
@@ -564,10 +564,10 @@
install(TARGETS sta DESTINATION bin)
# library
-install(TARGETS OpenSTA DESTINATION lib)
+#install(TARGETS OpenSTA DESTINATION lib)
# include
-install(DIRECTORY include/sta DESTINATION include)
+#install(DIRECTORY include/sta DESTINATION include)
################################################################

View File

@ -0,0 +1,187 @@
diff -Naur openroad-9999_or/src/cts/src/HTreeBuilder.cpp openroad-9999/src/cts/src/HTreeBuilder.cpp
--- openroad-9999_or/src/cts/src/HTreeBuilder.cpp 2023-04-21 14:06:49.517807229 +0200
+++ openroad-9999/src/cts/src/HTreeBuilder.cpp 2023-04-21 14:29:09.637380968 +0200
@@ -201,7 +201,7 @@
if (topLevelSinks.size() <= min_clustering_sinks_
|| !(options_->getSinkClustering())) {
Box<int> sinkRegionDbu = clock_.computeSinkRegion();
- logger_->info(CTS, 23, " Original sink region: {}.", sinkRegionDbu);
+ //logger_->info(CTS, 23, " Original sink region: {}.", sinkRegionDbu);
sinkRegion_ = sinkRegionDbu.normalize(1.0 / wireSegmentUnit_);
} else {
@@ -218,7 +218,7 @@
}
sinkRegion_ = clock_.computeSinkRegionClustered(topLevelSinksClustered_);
}
- logger_->info(CTS, 24, " Normalized sink region: {}.", sinkRegion_);
+ //logger_->info(CTS, 24, " Normalized sink region: {}.", sinkRegion_);
logger_->info(CTS, 25, " Width: {:.4f}.", sinkRegion_.getWidth());
logger_->info(CTS, 26, " Height: {:.4f}.", sinkRegion_.getHeight());
}
diff -Naur openroad-9999_or/src/drt/src/db/tech/frConstraint.h openroad-9999/src/drt/src/db/tech/frConstraint.h
--- openroad-9999_or/src/drt/src/db/tech/frConstraint.h 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/db/tech/frConstraint.h 2023-04-21 14:52:29.356918592 +0200
@@ -552,7 +552,7 @@
numCuts,
width,
cutDistance,
- connection,
+ int(connection),
length,
distance);
}
@@ -2163,7 +2163,7 @@
"{} edgeLength {} includeLShape {} minLength {} exceptNotch {} "
"notchLength {} exceptSameNet {} exceptSameMetal {} sameXY {} "
"cornerToCorner {}",
- cornerType,
+ int(cornerType),
sameMask,
within,
eolWidth,
diff -Naur openroad-9999_or/src/drt/src/dr/FlexDR.cpp openroad-9999/src/drt/src/dr/FlexDR.cpp
--- openroad-9999_or/src/drt/src/dr/FlexDR.cpp 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/dr/FlexDR.cpp 2023-04-21 14:59:11.916792299 +0200
@@ -610,7 +610,7 @@
" Completing {}% with {} violations.",
prev_perc,
getDesign()->getTopBlock()->getNumMarkers());
- logger_->report(" {}.", t);
+ // logger_->report(" {}.", int(t));
}
}
}
@@ -637,7 +637,7 @@
for (int i = 0; i < distWorkerBatches.size(); i++)
sendWorkers(distWorkerBatches.at(i), workersInBatch);
}
- logger_->report(" Received Batches:{}.", t);
+ //logger_->report(" Received Batches:{}.", t);
std::vector<std::pair<int, std::string>> workers;
router_->getWorkerResults(workers);
{
@@ -649,7 +649,7 @@
workers.at(i).second);
}
}
- logger_->report(" Deserialized Batches:{}.", t);
+ //logger_->report(" Deserialized Batches:{}.", t);
}
}
}
@@ -680,7 +680,7 @@
logger_->report(" Completing {}% with {} violations.",
prev_perc,
getDesign()->getTopBlock()->getNumMarkers());
- logger_->report(" {}.", t);
+ //logger_->report(" {}.", t);
}
}
}
diff -Naur openroad-9999_or/src/drt/src/dr/FlexDR_conn.cpp openroad-9999/src/drt/src/dr/FlexDR_conn.cpp
--- openroad-9999_or/src/drt/src/dr/FlexDR_conn.cpp 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/dr/FlexDR_conn.cpp 2023-04-21 14:54:54.186868308 +0200
@@ -1004,8 +1004,8 @@
if (ps->isBeginTruncated()
&& ((currEnd < ps->high() && currEndPs->isEndTruncated())
|| (currEnd > ps->high() && ps->isEndTruncated()))) {
- logger_->warn(
- DRT, 6001, "Path segs were not split: {} and {}", *ps, *currEndPs);
+ /*logger_->warn(
+ DRT, 6001, "Path segs were not split: {} and {}", *ps, *currEndPs);*/
}
hasOverlap = true;
// update local variables
diff -Naur openroad-9999_or/src/drt/src/pa/FlexPA_graphics.cpp openroad-9999/src/drt/src/pa/FlexPA_graphics.cpp
--- openroad-9999_or/src/drt/src/pa/FlexPA_graphics.cpp 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/drt/src/pa/FlexPA_graphics.cpp 2023-04-21 15:04:32.356718780 +0200
@@ -305,7 +305,7 @@
logger_->info(DRT,
292,
"Marker {} at ({}, {}) ({}, {}).",
- marker->getConstraint()->typeId(),
+ int(marker->getConstraint()->typeId()),
bbox.xMin(),
bbox.yMin(),
bbox.xMax(),
@@ -349,7 +349,7 @@
logger_->info(DRT,
281,
"Marker {} at ({}, {}) ({}, {}).",
- marker->getConstraint()->typeId(),
+ int(marker->getConstraint()->typeId()),
bbox.xMin(),
bbox.yMin(),
bbox.xMax(),
diff -Naur openroad-9999_or/src/grt/src/fastroute/src/utility.cpp openroad-9999/src/grt/src/fastroute/src/utility.cpp
--- openroad-9999_or/src/grt/src/fastroute/src/utility.cpp 2023-04-21 14:06:49.637807168 +0200
+++ openroad-9999/src/grt/src/fastroute/src/utility.cpp 2023-04-21 14:21:46.027519928 +0200
@@ -1431,7 +1431,7 @@
edge.n2,
nodes[edge.n2].x,
nodes[edge.n2].y,
- edge.route.type);
+ int(edge.route.type));
if (edge.len > 0) {
std::string edge_rpt;
for (int i = 0; i <= edge.route.routelen; i++) {
diff -Naur openroad-9999_or/src/dst/src/BalancerConnection.cc openroad-9999/src/dst/src/BalancerConnection.cc
--- openroad-9999_or/src/dst/src/BalancerConnection.cc 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/dst/src/BalancerConnection.cc 2023-04-21 14:33:16.107305933 +0200
@@ -133,13 +133,13 @@
failure = false;
break;
}
- logger_->warn(utl::DST,
+ /*logger_->warn(utl::DST,
204,
"Exception thrown: {}. worker with ip \"{}\" and "
"port \"{}\" will be pushed back the queue.",
ex.what(),
workerAddress,
- port);
+ port);*/
owner_->punishWorker(workerAddress, port);
failed_workers_trials++;
if (failed_workers_trials == MAX_FAILED_WORKERS_TRIALS) {
diff -Naur openroad-9999_or/src/dst/src/LoadBalancer.cc openroad-9999/src/dst/src/LoadBalancer.cc
--- openroad-9999_or/src/dst/src/LoadBalancer.cc 2023-04-21 14:06:49.537807219 +0200
+++ openroad-9999/src/dst/src/LoadBalancer.cc 2023-04-21 14:32:36.557316577 +0200
@@ -43,11 +43,11 @@
logger_->info(utl::DST, 7, "Processed {} jobs", jobs_);
auto copy = workers_;
while (!copy.empty()) {
- auto worker = copy.top();
+ /*auto worker = copy.top();
logger_->report("Worker {}/{} handled {} jobs",
worker.ip,
worker.port,
- worker.priority);
+ worker.priority);*/
copy.pop();
}
}
diff -Naur openroad-9999_or/src/dbSta/src/dbReadVerilog.cc openroad-9999/src/dbSta/src/dbReadVerilog.cc
--- openroad-9999_or/src/dbSta/src/dbReadVerilog.cc 2023-04-21 15:41:59.365941472 +0200
+++ openroad-9999/src/dbSta/src/dbReadVerilog.cc 2023-04-21 15:45:45.655855300 +0200
@@ -118,7 +118,7 @@
void
initDbVerilogNetwork(ord::OpenRoad* openroad)
{
- openroad->getVerilogNetwork()->init(openroad->getDbNetwork());
+// openroad->getVerilogNetwork()->init(openroad->getDbNetwork());
}
void
diff -Naur openroad-9999_or/src/sta/power/Vcd.hh openroad-9999/src/sta/power/Vcd.hh
--- openroad-9999_or/src/sta/power/Vcd.hh 2023-05-15 00:07:10.449868297 +0200
+++ openroad-9999/src/sta/power/Vcd.hh 2023-05-15 00:07:37.216534307 +0200
@@ -20,6 +20,7 @@
#include <vector>
#include <map>
#include <algorithm>
+#include <cstdint>
#include "StaState.hh"

View File

@ -0,0 +1,535 @@
diff -Naur openroad-2.0_or/src/odb/src/db/CMakeLists.txt openroad-2.0/src/odb/src/db/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/db/CMakeLists.txt 2023-03-23 10:21:52.264902374 +0100
+++ openroad-2.0/src/odb/src/db/CMakeLists.txt 2023-03-23 10:19:20.622798162 +0100
@@ -1,4 +1,4 @@
-add_library(db
+add_library(db STATIC
dbBTerm.cpp
dbStream.cpp
dbBTermItr.cpp
diff -Naur openroad-2.0_or/src/odb/src/defout/CMakeLists.txt openroad-2.0/src/odb/src/defout/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/defout/CMakeLists.txt 2023-03-23 10:22:03.737758944 +0100
+++ openroad-2.0/src/odb/src/defout/CMakeLists.txt 2023-03-23 10:19:36.508599562 +0100
@@ -1,4 +1,4 @@
-add_library(defout
+add_library(defout STATIC
defout.cpp
defout_impl.cpp
)
diff -Naur openroad-2.0_or/src/odb/src/lefout/CMakeLists.txt openroad-2.0/src/odb/src/lefout/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/lefout/CMakeLists.txt 2023-03-23 10:22:10.718671670 +0100
+++ openroad-2.0/src/odb/src/lefout/CMakeLists.txt 2023-03-23 10:19:50.669422527 +0100
@@ -1,4 +1,4 @@
-add_library(lefout
+add_library(lefout STATIC
lefout.cpp
)
diff -Naur openroad-2.0_or/src/odb/src/zutil/CMakeLists.txt openroad-2.0/src/odb/src/zutil/CMakeLists.txt
--- openroad-2.0_or/src/odb/src/zutil/CMakeLists.txt 2023-03-23 10:21:25.659234991 +0100
+++ openroad-2.0/src/odb/src/zutil/CMakeLists.txt 2023-03-23 10:21:34.254127540 +0100
@@ -1,4 +1,4 @@
-add_library(zutil
+add_library(zutil STATIC
parse.cpp
poly_decomp.cpp
util.cpp
diff -Naur openroad-9999_or/src/dst/src/BalancerConnection.cc openroad-9999/src/dst/src/BalancerConnection.cc
--- openroad-9999_or/src/dst/src/BalancerConnection.cc 2023-03-23 11:45:12.634389153 +0100
+++ openroad-9999/src/dst/src/BalancerConnection.cc 2023-03-23 12:24:56.558586000 +0100
@@ -133,21 +133,21 @@
failure = false;
break;
}
- logger_->warn(utl::DST,
+ /*logger_->warn(utl::DST,
204,
"Exception thrown: {}. worker with ip \"{}\" and "
"port \"{}\" will be pushed back the queue.",
ex.what(),
workerAddress,
- port);
+ port);*/
owner_->punishWorker(workerAddress, port);
failed_workers_trials++;
if (failed_workers_trials == MAX_FAILED_WORKERS_TRIALS) {
- logger_->warn(utl::DST,
+/* logger_->warn(utl::DST,
205,
"Maximum of {} failing workers reached, "
"relaying error to leader.",
- failed_workers_trials);
+ failed_workers_trials);*/
break;
}
owner_->getNextWorker(workerAddress, port);
diff -Naur openroad-9999_or/src/dst/src/LoadBalancer.cc openroad-9999/src/dst/src/LoadBalancer.cc
--- openroad-9999_or/src/dst/src/LoadBalancer.cc 2023-03-23 11:45:12.634389153 +0100
+++ openroad-9999/src/dst/src/LoadBalancer.cc 2023-03-23 12:19:04.019993338 +0100
@@ -44,10 +44,10 @@
auto copy = workers_;
while (!copy.empty()) {
auto worker = copy.top();
- logger_->report("Worker {}/{} handled {} jobs",
+ /* logger_->report("Worker {}/{} handled {} jobs",
worker.ip,
worker.port,
- worker.priority);
+ worker.priority);*/
copy.pop();
}
}
diff -Naur openroad-9999_or/src/grt/src/fastroute/CMakeLists.txt openroad-9999/src/grt/src/fastroute/CMakeLists.txt
--- openroad-9999_or/src/grt/src/fastroute/CMakeLists.txt 2023-03-23 11:45:12.906385753 +0100
+++ openroad-9999/src/grt/src/fastroute/CMakeLists.txt 2023-03-23 12:39:39.528547356 +0100
@@ -53,6 +53,8 @@
../../include
)
+set_property(TARGET FastRoute4.1 PROPERTY POSITION_INDEPENDENT_CODE ON)
+
target_link_libraries(FastRoute4.1
PRIVATE
utl
diff -Naur openroad-9999_or/src/grt/src/fastroute/src/utility.cpp openroad-9999/src/grt/src/fastroute/src/utility.cpp
--- openroad-9999_or/src/grt/src/fastroute/src/utility.cpp 2023-03-23 11:45:12.906385753 +0100
+++ openroad-9999/src/grt/src/fastroute/src/utility.cpp 2023-03-23 12:06:03.043756885 +0100
@@ -1423,7 +1423,7 @@
const TreeEdge edge = sttrees_[netID].edges[edgeID];
const auto& nodes = sttrees_[netID].nodes;
- logger_->report("edge {}: n1 {} ({}, {})-> n2 {}({}, {}), routeType {}",
+ /*logger_->report("edge {}: n1 {} ({}, {})-> n2 {}({}, {}), routeType {}",
edgeID,
edge.n1,
nodes[edge.n1].x,
@@ -1431,7 +1431,7 @@
edge.n2,
nodes[edge.n2].x,
nodes[edge.n2].y,
- edge.route.type);
+ edge.route.type);*/
if (edge.len > 0) {
std::string edge_rpt;
for (int i = 0; i <= edge.route.routelen; i++) {
diff -Naur openroad-9999_or/src/utl/include/utl/Logger.h openroad-9999/src/utl/include/utl/Logger.h
--- openroad-9999_or/src/utl/include/utl/Logger.h 2023-03-23 11:45:13.124383027 +0100
+++ openroad-9999/src/utl/include/utl/Logger.h 2023-03-23 12:58:26.050463894 +0100
@@ -118,7 +118,7 @@
template <typename... Args>
inline void report(const std::string& message, const Args&... args)
{
- logger_->log(spdlog::level::level_enum::off, FMT_RUNTIME(message), args...);
+ //logger_->log(spdlog::level::level_enum::off, FMT_RUNTIME(message), args...);
}
// Do NOT call this directly, use the debugPrint macro instead (defined
@@ -130,13 +130,13 @@
const Args&... args)
{
// Message counters do NOT apply to debug messages.
- logger_->log(spdlog::level::level_enum::debug,
+ /*logger_->log(spdlog::level::level_enum::debug,
FMT_RUNTIME("[{} {}-{}] " + message),
level_names[spdlog::level::level_enum::debug],
tool_names_[tool],
group,
args...);
- logger_->flush();
+ logger_->flush();*/
}
template <typename... Args>
@@ -249,22 +249,22 @@
auto& counter = message_counters_[tool][id];
auto count = counter++;
if (count < max_message_print) {
- logger_->log(level,
+ /*logger_->log(level,
FMT_RUNTIME("[{} {}-{:04d}] " + message),
level_names[level],
tool_names_[tool],
id,
- args...);
+ args...);*/
return;
}
if (count == max_message_print) {
- logger_->log(level,
+/* logger_->log(level,
"[{} {}-{:04d}] message limit reached, "
"this message will no longer print",
level_names[level],
tool_names_[tool],
- id);
+ id);*/
} else {
counter--; // to avoid counter overflow
}
diff -Naur openroad-9999_or/src/mpl/src/ParquetFP/src/Annealer.h openroad-9999/src/mpl/src/ParquetFP/src/Annealer.h
--- openroad-9999_or/src/mpl/src/ParquetFP/src/Annealer.h 2023-03-23 14:05:52.021882291 +0100
+++ openroad-9999/src/mpl/src/ParquetFP/src/Annealer.h 2023-03-23 17:22:11.421619529 +0100
@@ -63,12 +63,12 @@
Annealer() : BaseAnnealer(), _sp(NULL), _spEval(NULL) {}
public:
- Annealer(const Command_Line* const params, DB* const db);
+ Annealer(const Command_Line* const params, DB* const db): BaseAnnealer(),_sp(NULL), _spEval(NULL) {}
- virtual ~Annealer();
- void parseConfig();
+ virtual ~Annealer() {}
+ void parseConfig() {}
- virtual bool go();
+ virtual bool go() {}
void anneal();
virtual bool packOneBlock() { return true; }
@@ -76,8 +76,8 @@
virtual void compactSoln(bool minWL,
bool fixedOutline,
float reqdH,
- float reqdW);
- virtual void takePlfromDB(); // takeSPformDB() + eval()
+ float reqdW) {}
+ virtual void takePlfromDB() {} // takeSPformDB() + eval()
void takeSPfromDB(); // converts the present pl to a seq-pair
void eval(); // just evaluate the current SP and set up required
diff -Naur openroad-9999_or/src/dpl/CMakeLists.txt openroad-9999/src/dpl/CMakeLists.txt
--- openroad-9999_or/src/dpl/CMakeLists.txt 2023-03-23 17:39:20.233757607 +0100
+++ openroad-9999/src/dpl/CMakeLists.txt 2023-03-23 17:51:02.776974608 +0100
@@ -39,7 +39,7 @@
include("openroad")
-add_library(dpl_lib
+add_library(dpl_lib STATIC
src/Opendp.cpp
src/dbToOpendp.cpp
src/Grid.cpp
diff -Naur openroad-9999_or/src/grt/src/fastroute/CMakeLists.txt openroad-9999/src/grt/src/fastroute/CMakeLists.txt
--- openroad-9999_or/src/grt/src/fastroute/CMakeLists.txt 2023-03-23 17:39:20.554753594 +0100
+++ openroad-9999/src/grt/src/fastroute/CMakeLists.txt 2023-03-23 17:51:19.270768408 +0100
@@ -34,7 +34,7 @@
## POSSIBILITY OF SUCH DAMAGE.
################################################################################
-add_library(FastRoute4.1
+add_library(FastRoute4.1 STATIC
src/FastRoute.cpp
src/RSMT.cpp
src/RipUp.cpp
diff -Naur openroad-9999_or/src/gui/CMakeLists.txt openroad-9999/src/gui/CMakeLists.txt
--- openroad-9999_or/src/gui/CMakeLists.txt 2023-03-23 17:39:20.566753444 +0100
+++ openroad-9999/src/gui/CMakeLists.txt 2023-03-23 17:51:28.322655243 +0100
@@ -75,7 +75,7 @@
else()
message(STATUS "GUI is not enabled")
- add_library(gui
+ add_library(gui STATIC
src/stub.cpp
src/stub_heatMap.cpp
)
diff -Naur openroad-9999_or/src/mpl/src/ParquetFP/CMakeLists.txt openroad-9999/src/mpl/src/ParquetFP/CMakeLists.txt
--- openroad-9999_or/src/mpl/src/ParquetFP/CMakeLists.txt 2023-03-23 17:39:20.570753394 +0100
+++ openroad-9999/src/mpl/src/ParquetFP/CMakeLists.txt 2023-03-23 17:50:32.687350780 +0100
@@ -36,7 +36,7 @@
LANGUAGES CXX
)
-add_library(ParquetFP
+add_library(ParquetFP STATIC
src/AnalytSolve.cxx
src/baseannealer.cxx
src/basepacking.cxx
@@ -74,4 +74,3 @@
PUBLIC
src
)
-
diff -Naur openroad-9999_or/src/odb/src/cdl/CMakeLists.txt openroad-9999/src/odb/src/cdl/CMakeLists.txt
--- openroad-9999_or/src/odb/src/cdl/CMakeLists.txt 2023-03-23 17:39:20.581753257 +0100
+++ openroad-9999/src/odb/src/cdl/CMakeLists.txt 2023-03-23 17:47:36.996547218 +0100
@@ -1,4 +1,4 @@
-add_library(cdl
+add_library(cdl STATIC
cdl.cpp
)
diff -Naur openroad-9999_or/src/odb/src/def/CMakeLists.txt openroad-9999/src/odb/src/def/CMakeLists.txt
--- openroad-9999_or/src/odb/src/def/CMakeLists.txt 2023-03-23 17:39:20.593753107 +0100
+++ openroad-9999/src/odb/src/def/CMakeLists.txt 2023-03-23 17:49:13.935335316 +0100
@@ -13,7 +13,7 @@
COMPILE_FLAGS "--name-prefix=defyy"
)
-add_library(def
+add_library(def STATIC
def/defiAlias.cpp
def/defiAssertion.cpp
def/defiBlockage.cpp
@@ -50,7 +50,7 @@
${BISON_def_parser_OUTPUT_SOURCE}
)
-add_library(defzlib
+add_library(defzlib STATIC
defzlib/defzlib.cpp
)
diff -Naur openroad-9999_or/src/odb/src/defin/CMakeLists.txt openroad-9999/src/odb/src/defin/CMakeLists.txt
--- openroad-9999_or/src/odb/src/defin/CMakeLists.txt 2023-03-23 17:39:20.593753107 +0100
+++ openroad-9999/src/odb/src/defin/CMakeLists.txt 2023-03-23 17:47:54.686326065 +0100
@@ -1,4 +1,4 @@
-add_library(defin
+add_library(defin STATIC
definNet.cpp
definSNet.cpp
definComponent.cpp
diff -Naur openroad-9999_or/src/odb/src/lef/CMakeLists.txt openroad-9999/src/odb/src/lef/CMakeLists.txt
--- openroad-9999_or/src/odb/src/lef/CMakeLists.txt 2023-03-23 17:39:20.597753057 +0100
+++ openroad-9999/src/odb/src/lef/CMakeLists.txt 2023-03-23 17:49:37.258043742 +0100
@@ -11,7 +11,7 @@
############################################################
# Create a library for LEF
############################################################
-add_library(lef
+add_library(lef STATIC
lef/crypt.cpp
lef/lefiArray.cpp
lef/lefiCrossTalk.cpp
@@ -37,7 +37,7 @@
${BISON_lef_parser_OUTPUT_SOURCE}
)
-add_library(lefzlib
+add_library(lefzlib STATIC
lefzlib/lefzlib.cpp
)
diff -Naur openroad-9999_or/src/odb/src/lefin/CMakeLists.txt openroad-9999/src/odb/src/lefin/CMakeLists.txt
--- openroad-9999_or/src/odb/src/lefin/CMakeLists.txt 2023-03-23 17:39:20.598753044 +0100
+++ openroad-9999/src/odb/src/lefin/CMakeLists.txt 2023-03-23 17:49:46.559927453 +0100
@@ -1,4 +1,4 @@
-add_library(lefin
+add_library(lefin STATIC
lefin.cpp
reader.cpp
lefTechLayerSpacingEolParser.cpp
diff -Naur openroad-9999_or/src/odb/src/swig/common/CMakeLists.txt openroad-9999/src/odb/src/swig/common/CMakeLists.txt
--- openroad-9999_or/src/odb/src/swig/common/CMakeLists.txt 2023-03-23 17:39:20.598753044 +0100
+++ openroad-9999/src/odb/src/swig/common/CMakeLists.txt 2023-03-23 17:48:46.532677897 +0100
@@ -1,4 +1,4 @@
-add_library(odb_swig_common
+add_library(odb_swig_common STATIC
swig_common.cpp
)
diff -Naur openroad-9999_or/src/odb/src/tm/CMakeLists.txt openroad-9999/src/odb/src/tm/CMakeLists.txt
--- openroad-9999_or/src/odb/src/tm/CMakeLists.txt 2023-03-23 17:39:20.598753044 +0100
+++ openroad-9999/src/odb/src/tm/CMakeLists.txt 2023-03-23 17:49:58.709775559 +0100
@@ -1,4 +1,4 @@
-add_library(tm
+add_library(tm STATIC
ZFactory.cpp
)
diff -Naur openroad-9999_or/src/ppl/src/munkres/CMakeLists.txt openroad-9999/src/ppl/src/munkres/CMakeLists.txt
--- openroad-9999_or/src/ppl/src/munkres/CMakeLists.txt 2023-03-23 17:39:20.639752532 +0100
+++ openroad-9999/src/ppl/src/munkres/CMakeLists.txt 2023-03-23 17:52:05.390191835 +0100
@@ -1,6 +1,6 @@
project(Munkres)
-add_library(Munkres
+add_library(Munkres STATIC
src/Hungarian.cpp
)
diff -Naur openroad-9999_or/src/rcx/src/CMakeLists.txt openroad-9999/src/rcx/src/CMakeLists.txt
--- openroad-9999_or/src/rcx/src/CMakeLists.txt 2023-03-23 17:39:20.677752057 +0100
+++ openroad-9999/src/rcx/src/CMakeLists.txt 2023-03-23 18:05:05.920433865 +0100
@@ -33,7 +33,7 @@
include("openroad")
-add_library(rcx_lib
+add_library(rcx_lib STATIC
ext.cpp
extBench.cpp
extBenchDB.cpp
diff -Naur openroad-9999_or/src/sta/CMakeLists.txt openroad-9999/src/sta/CMakeLists.txt
--- openroad-9999_or/src/sta/CMakeLists.txt 2023-03-23 17:39:20.764750969 +0100
+++ openroad-9999/src/sta/CMakeLists.txt 2023-03-23 18:22:22.433475668 +0100
@@ -557,7 +557,12 @@
install(TARGETS sta DESTINATION bin)
# library
-install(TARGETS OpenSTA DESTINATION lib)
+get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+if (${LIB64} STREQUAL "TRUE")
+ install(TARGETS OpenSTA DESTINATION lib64)
+else()
+ install(TARGETS OpenSTA DESTINATION lib)
+endif()
# include
install(DIRECTORY include/sta DESTINATION include)
diff -Naur openroad-9999_or/src/upf/src/CMakeLists.txt openroad-9999/src/upf/src/CMakeLists.txt
--- openroad-9999_or/src/upf/src/CMakeLists.txt 2023-03-23 17:39:20.773750856 +0100
+++ openroad-9999/src/upf/src/CMakeLists.txt 2023-03-23 17:48:26.645926515 +0100
@@ -35,7 +35,7 @@
include("openroad")
-add_library(upf_lib
+add_library(upf_lib STATIC
upf.cpp
)
diff -Naur openroad-9999_or/src/utl/CMakeLists.txt openroad-9999/src/utl/CMakeLists.txt
--- openroad-9999_or/src/utl/CMakeLists.txt 2023-03-23 17:39:20.774750844 +0100
+++ openroad-9999/src/utl/CMakeLists.txt 2023-03-23 17:52:33.266843329 +0100
@@ -65,7 +65,7 @@
)
endif()
-add_library(utl_lib
+add_library(utl_lib STATIC
src/Metrics.cpp
src/CFileUtils.cpp
src/ScopedTemporaryFile.cpp
diff -Naur openroad-9999_or/third-party/abc/CMakeLists.txt openroad-9999/third-party/abc/CMakeLists.txt
--- openroad-9999_or/third-party/abc/CMakeLists.txt 2023-03-26 14:58:26.804651212 +0200
+++ openroad-9999/third-party/abc/CMakeLists.txt 2023-03-26 15:00:54.912799606 +0200
@@ -103,7 +103,7 @@
set(ABC_MAIN_SRC src/base/main/main.c)
list(REMOVE_ITEM ABC_SRC ${ABC_MAIN_SRC})
-add_library(libabc EXCLUDE_FROM_ALL ${ABC_SRC})
+add_library(libabc STATIC EXCLUDE_FROM_ALL ${ABC_SRC})
abc_properties(libabc PUBLIC)
set_property(TARGET libabc PROPERTY OUTPUT_NAME abc)
@@ -111,7 +111,7 @@
target_link_libraries(abc PRIVATE libabc)
abc_properties(abc PRIVATE)
-add_library(libabc-pic EXCLUDE_FROM_ALL ${ABC_SRC})
+add_library(libabc-pic STATIC EXCLUDE_FROM_ALL ${ABC_SRC})
abc_properties(libabc-pic PUBLIC)
set_property(TARGET libabc-pic PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET libabc-pic PROPERTY OUTPUT_NAME abc-pic)
diff -Naur openroad-9999_or/src/mpl2/CMakeLists.txt openroad-9999/src/mpl2/CMakeLists.txt
--- openroad-9999_or/src/mpl2/CMakeLists.txt 2023-04-17 23:05:11.449824569 +0200
+++ openroad-9999/src/mpl2/CMakeLists.txt 2023-04-17 23:05:18.249678283 +0200
@@ -41,7 +41,7 @@
find_package(ortools REQUIRED)
-add_library(mpl2_lib
+add_library(mpl2_lib STATIC
src/rtl_mp.cpp
src/hier_rtlmp.cpp
src/object.cpp
@@ -93,4 +93,4 @@
gui
)
-add_subdirectory(test/cpp)
\ No newline at end of file
+#add_subdirectory(test/cpp)
\ No newline at end of file
diff -Naur openroad-9999_or/src/dft/CMakeLists.txt openroad-9999/src/dft/CMakeLists.txt
--- openroad-9999_or/src/dft/CMakeLists.txt 2023-04-17 23:12:44.372130910 +0200
+++ openroad-9999/src/dft/CMakeLists.txt 2023-04-17 23:12:52.872278949 +0200
@@ -104,4 +104,4 @@
add_subdirectory(src/config)
add_subdirectory(src/replace)
add_subdirectory(src/utils)
-add_subdirectory(test/cpp)
+#add_subdirectory(test/cpp)
diff -Naur openroad-9999_or/src/dbSta/src/CMakeLists.txt openroad-9999/src/dbSta/src/CMakeLists.txt
--- openroad-9999_or/src/dbSta/src/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dbSta/src/CMakeLists.txt 2023-04-17 23:36:30.408541243 +0200
@@ -35,7 +35,7 @@
include("openroad")
-add_library(dbSta_lib
+add_library(dbSta_lib STATIC
dbNetwork.cc
dbSdcNetwork.cc
dbReadVerilog.cc
diff -Naur openroad-9999_or/src/dft/src/architect/CMakeLists.txt openroad-9999/src/dft/src/architect/CMakeLists.txt
--- openroad-9999_or/src/dft/src/architect/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dft/src/architect/CMakeLists.txt 2023-04-17 23:35:06.235215241 +0200
@@ -1,4 +1,4 @@
-add_library(dft_architect_lib
+add_library(dft_architect_lib STATIC
# Keep sorted
ScanArchitect.cpp
ScanArchitectHeuristic.cpp
diff -Naur openroad-9999_or/src/dft/src/cells/CMakeLists.txt openroad-9999/src/dft/src/cells/CMakeLists.txt
--- openroad-9999_or/src/dft/src/cells/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dft/src/cells/CMakeLists.txt 2023-04-17 23:35:12.725276693 +0200
@@ -1,4 +1,4 @@
-add_library(dft_cells_lib
+add_library(dft_cells_lib STATIC
# Keep sorted
OneBitScanCell.cpp
ScanCell.cpp
diff -Naur openroad-9999_or/src/dft/src/clock_domain/CMakeLists.txt openroad-9999/src/dft/src/clock_domain/CMakeLists.txt
--- openroad-9999_or/src/dft/src/clock_domain/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dft/src/clock_domain/CMakeLists.txt 2023-04-17 23:35:22.795447936 +0200
@@ -1,4 +1,4 @@
-add_library(dft_clock_domain_lib
+add_library(dft_clock_domain_lib STATIC
# Keep sorted
ClockDomain.cpp
)
diff -Naur openroad-9999_or/src/dft/src/config/CMakeLists.txt openroad-9999/src/dft/src/config/CMakeLists.txt
--- openroad-9999_or/src/dft/src/config/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dft/src/config/CMakeLists.txt 2023-04-17 23:35:33.125542139 +0200
@@ -1,4 +1,4 @@
-add_library(dft_config_lib
+add_library(dft_config_lib STATIC
# Keep sorted
DftConfig.cpp
ScanArchitectConfig.cpp
diff -Naur openroad-9999_or/src/dft/src/replace/CMakeLists.txt openroad-9999/src/dft/src/replace/CMakeLists.txt
--- openroad-9999_or/src/dft/src/replace/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dft/src/replace/CMakeLists.txt 2023-04-17 23:35:40.691890450 +0200
@@ -1,4 +1,4 @@
-add_library(dft_replace_lib
+add_library(dft_replace_lib STATIC
# Keep sorted
ScanReplace.cpp
)
diff -Naur openroad-9999_or/src/dft/src/utils/CMakeLists.txt openroad-9999/src/dft/src/utils/CMakeLists.txt
--- openroad-9999_or/src/dft/src/utils/CMakeLists.txt 2023-04-17 23:34:36.949536731 +0200
+++ openroad-9999/src/dft/src/utils/CMakeLists.txt 2023-04-17 23:35:52.132006797 +0200
@@ -1,5 +1,5 @@
-add_library(dft_utils_lib
+add_library(dft_utils_lib STATIC
# Keep sorted
Utils.cpp
)
diff -Naur openroad-9999_or/src/par/CMakeLists.txt openroad-9999/src/par/CMakeLists.txt
--- openroad-9999_or/src/par/CMakeLists.txt 2023-04-17 23:34:37.099542578 +0200
+++ openroad-9999/src/par/CMakeLists.txt 2023-04-17 23:36:10.398133131 +0200
@@ -37,7 +37,7 @@
find_package(ortools REQUIRED)
-add_library(par_lib
+add_library(par_lib STATIC
src/PartitionMgr.cpp
src/TritonPart.cpp
src/TPHypergraph.cpp

View File

@ -0,0 +1,58 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..11} )
inherit cmake python-any-r1 git-r3
DESCRIPTION="Hardware design requires too much effort, cost and time"
HOMEPAGE="https://theopenroadproject.org/"
#SRC_URI="https://github.com/The-OpenROAD-Project/OpenROAD/archive/refs/tags/v${PV}.tar.gz"
#S="${WORKDIR}/OpenROAD-${PV}"
EGIT_REPO_URI="https://github.com/The-OpenROAD-Project/OpenROAD.git"
EGIT_SUBMODULES=( '*' )
PATCHES=(
"${FILESDIR}"/${PN}_build1.patch
)
KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86"
SLOT="0"
IUSE="test"
DEPEND="
dev-libs/spdlog
dev-cpp/eigen
sci-libs/lemon
dev-cpp/gtest
dev-cpp/or-tools
dev-lang/swig
dev-libs/boost
"
RDEPEND="
${DEPEND}
"
BDEPEND="
dev-util/cmake
"
src_configure() {
local mycmakeargs=(
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/"
# -DUSE_SYSTEM_ABC=true
-DUSE_SYSTEM_BOOST=true
-DCMAKE_CXX_FLAGS="-fPIC -DFMT_DEPRECATED_OSTREAM=1"
-DCMAKE_BUILD_TYPE="RELEASE"
-DBUILD_SHARED_LIBS=NO
)
if use test; then
mycmakeargs+=(
-DENABLE_TESTS=ON
)
else
mycmakeargs+=(
-DENABLE_TESTS=OFF
)
fi
cmake_src_configure
}

View File

@ -0,0 +1 @@
EBUILD sky130-meta-0.ebuild 475 BLAKE2B d36e4ed9f622cadf6533c4b07ed03ae528487989466c16ac0964dfd0d776fc3420ac059906ebb72a706430bfe559694070599216ffc361fddcbca2db33f09b59 SHA512 94fb1f3efe8913e42135e7b36b129e7941d73010c79bffebd2a0c5e0bab564b847e75c8992c0d35f946cbd8a256b2d004f6e8aa82c213e947c68abe7be157712

View File

@ -0,0 +1,21 @@
EAPI=7
inherit multilib-build
DESCRIPTION="Meta-package for Google SKY130 programm"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE=""
DEPEND="sci-electronics/magic
sci-electronics/openroad
sci-electronics/xschem
sci-electronics/ngspice
sci-electronics/xyce
app-containers/docker
app-containers/docker-cli
dev-python/pip
sci-electronics/gtkwave[lzma(+)]"
RDEPEND="${DEPEND}"

View File

@ -0,0 +1 @@
EBUILD xschem-9999.ebuild 464 BLAKE2B 7e22a2fb12e89be329d97b496f198839b93dc5ba9b9b623747798104350a02e94a35a948729ff4ab3a65d48d9800ad109109ba5fa6f1fba6797da6ecac4b3036 SHA512 74d1713a1910ae371c4569dfa52ba69e482e6c8cecd1e8a1be0abb1dd7482a80e7b5d849b4913b4778d416f901b16689f2937b2a4cd118d5e2aa5f532163f94f

View File

@ -0,0 +1,28 @@
EAPI=8
inherit git-r3
DESCRIPTION="A schematic editor for VLSI/Asic/Analog custom designs"
HOMEPAGE="http://repo.hu/projects/xschem/index.html"
EGIT_REPO_URI="https://github.com/StefanSchippers/xschem.git"
EGIT_SUBMODULES=( '*' )
KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86"
SLOT="0"
IUSE=""
DEPEND="
dev-lang/tcl
x11-libs/cairo
x11-libs/libxcb
x11-libs/libXpm
x11-terms/xterm
"
RDEPEND="
${DEPEND}
"
src_configure() {
./configure --prefix=/usr
}

View File

@ -0,0 +1,3 @@
AUX cuda_fix.patch 554 BLAKE2B f0609fd0faf38a8bfc15da8ad12c66070f9de6d9f1e1c3748903d1b5fd61ef401c3a0f149a7502b29d9fdd5d8054d0a7367a41734d8e76dbafd5f304a72429f2 SHA512 1c30ca126e4328e86a4fc10f1de9b7686ceca1403b2892f95b0b110df8becfd07540912d0bc6bc92726d1890157d7c8e137db2bad16e37057c2a4c9a42c22c7b
AUX install_fix.patch 5981 BLAKE2B c2b4a069e82ff5d06967c517934856565d4110f139f4e47a84d45cbc021a7a4e207cb3500fe9a75ae1ce7c958aba78c82c9a1920d65be1d9d98adffee6d44f41 SHA512 3a50ad0def026700993d6d6ad84098d9fd1702c08eea7375bad81854a7af5b94b49914af2e2f1a5e46855c8539df6d22f2aae32a37885f80c51e35505c91c843
EBUILD xyce-9999.ebuild 2133 BLAKE2B b9140b8cf5142cceb1231833f3e22123adc248c6aa1fdb9f8814282e491adc27e858f2646f1f86293e55d09178992f1bae4403f644049c517b5160dba67ded29 SHA512 abd3923c33633540b9af1c2af456eac959b9436813f8ac43af0e97218e8eed7e08f8e989fc4a13ee39895d8d99e169e658cfc0b247cffe5fb5a3192f912c9986

View File

@ -0,0 +1,12 @@
diff -Naur xyce-9999_or/CMakeLists.txt xyce-9999/CMakeLists.txt
--- xyce-9999_or/CMakeLists.txt 2023-06-24 23:07:37.945271060 +0200
+++ xyce-9999/CMakeLists.txt 2023-06-24 23:07:47.805157816 +0200
@@ -13,7 +13,7 @@
# system and sets up some critical variables. Therefore, make an initial call
# to "project" with "NONE" as the compiler set, then find Trilinos, then set up
# the compilers and call project again.
-project(Xyce NONE)
+project(Xyce CXX)
# Disable Kokkos warning about not supporting C++ extensions
set(CMAKE_CXX_EXTENSIONS OFF)

View File

@ -0,0 +1,124 @@
diff -Naur xyce-9999_or/cmake/CPackConfig.cmake xyce-9999/cmake/CPackConfig.cmake
--- xyce-9999_or/cmake/CPackConfig.cmake 2023-05-15 12:38:38.177693416 +0200
+++ xyce-9999/cmake/CPackConfig.cmake 2023-05-15 12:39:49.513921635 +0200
@@ -1,7 +1,7 @@
## Installation and CPack
# copyright, readme, license, etc.
install ( FILES ${Xyce_SOURCE_DIR}/distribution/README.TXT
- DESTINATION doc
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}
OPTIONAL )
diff -Naur xyce-9999_or/cmake/trilinos/AMD/CMakeLists.txt xyce-9999/cmake/trilinos/AMD/CMakeLists.txt
--- xyce-9999_or/cmake/trilinos/AMD/CMakeLists.txt 2023-05-15 12:38:38.177693416 +0200
+++ xyce-9999/cmake/trilinos/AMD/CMakeLists.txt 2023-05-15 12:43:28.645636710 +0200
@@ -60,7 +60,7 @@
set_property(TARGET amd PROPERTY POSITION_INDEPENDENT_CODE ON)
-install(TARGETS amd DESTINATION lib)
+install(TARGETS amd DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES
${SuiteSparsePath}/AMD/Include/amd.h
${SuiteSparsePath}/SuiteSparse_config/SuiteSparse_config.h
diff -Naur xyce-9999_or/src/CMakeLists.txt xyce-9999/src/CMakeLists.txt
--- xyce-9999_or/src/CMakeLists.txt 2023-05-15 12:38:38.204359928 +0200
+++ xyce-9999/src/CMakeLists.txt 2023-05-15 12:41:52.479724497 +0200
@@ -167,7 +167,7 @@
# using different logical target names the two targets will remove each other's
# files. This can be prevented by setting the CLEAN_DIRECT_OUTPUT property to 1."
-install(TARGETS XyceLib DESTINATION lib EXPORT XyceLibTarget)
+install(TARGETS XyceLib DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT XyceLibTarget)
install(TARGETS Xyce DESTINATION bin EXPORT XyceTarget)
# Add header files needed by other codes to link against libxyce.*
diff -Naur xyce-9999_or/utils/SimulinkInterface/CMakeLists.txt xyce-9999/utils/SimulinkInterface/CMakeLists.txt
--- xyce-9999_or/utils/SimulinkInterface/CMakeLists.txt 2023-05-15 12:38:38.211026556 +0200
+++ xyce-9999/utils/SimulinkInterface/CMakeLists.txt 2023-05-15 12:43:45.132168085 +0200
@@ -5,7 +5,7 @@
target_include_directories(xyce_sfunction PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${Matlab_INCLUDE_DIRS} "${Matlab_ROOT_DIR}/simulink/include")
- install(TARGETS xyce_sfunction DESTINATION lib)
+ install(TARGETS xyce_sfunction DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES XyceBlocks.slx DESTINATION share/simulink)
matlab_add_mex( NAME xyce2nLv_sfunction MODULE SRC xyce2nLv_sfunction.cpp LINK_TO XyceLib )
diff -Naur xyce-9999_or/utils/XyceCInterface/CMakeLists.txt xyce-9999/utils/XyceCInterface/CMakeLists.txt
--- xyce-9999_or/utils/XyceCInterface/CMakeLists.txt 2023-05-15 12:38:38.211026556 +0200
+++ xyce-9999/utils/XyceCInterface/CMakeLists.txt 2023-05-15 12:43:08.092469721 +0200
@@ -5,7 +5,7 @@
target_sources( xycecinterface PRIVATE N_CIR_XyceCInterface.C PUBLIC N_CIR_XyceCInterface.h )
target_include_directories( xycecinterface PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> )
target_link_libraries(xycecinterface XyceLib )
-install(TARGETS xycecinterface DESTINATION lib )
+install(TARGETS xycecinterface DESTINATION ${CMAKE_INSTALL_LIBDIR} )
install(FILES N_CIR_XyceCInterface.h DESTINATION include)
diff -Naur xyce-9999_or/src/CMakeLists.txt xyce-9999/src/CMakeLists.txt
--- xyce-9999_or/src/CMakeLists.txt 2023-05-26 18:32:42.704669936 +0200
+++ xyce-9999/src/CMakeLists.txt 2023-05-26 18:37:51.203869009 +0200
@@ -328,10 +328,10 @@
configure_package_config_file(
cmake/XyceConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cmake/XyceConfig.cmake
- INSTALL_DESTINATION lib/cmake
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake
)
-set(ConfigPackageLocation lib/cmake/Xyce)
+set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/Xyce)
install(EXPORT XyceLibTarget
FILE
XyceTargets.cmake
diff -Naur xyce-9999_or/CMakeLists.txt xyce-9999/CMakeLists.txt
--- xyce-9999_or/CMakeLists.txt 2023-06-15 12:10:16.293228331 +0200
+++ xyce-9999/CMakeLists.txt 2023-06-15 12:35:46.624756996 +0200
@@ -15,6 +15,9 @@
# the compilers and call project again.
project(Xyce NONE)
+# Disable Kokkos warning about not supporting C++ extensions
+set(CMAKE_CXX_EXTENSIONS OFF)
+
# A TriBITS project that performs a coupled build with Trilinos, like Charon,
# changes the names of all the Trilinos variables. Therefore, we have to jump
# through a bunch of hoops to take that use case into account. Here we set a
diff -Naur xyce-9999_or/cmake/tps.cmake xyce-9999/cmake/tps.cmake
--- xyce-9999_or/cmake/tps.cmake 2023-06-15 12:10:16.259895400 +0200
+++ xyce-9999/cmake/tps.cmake 2023-06-15 12:42:55.076301530 +0200
@@ -107,8 +107,8 @@
# Search for required TPL packages
message(STATUS "Looking for BLAS and LAPACK via Trilinos")
-list(FIND Trilinos_TPL_LIST BLAS BLAS_IN_Trilinos)
-list(FIND Trilinos_TPL_LIST LAPACK LAPACK_IN_Trilinos)
+list(FIND BLAS::all_libs BLAS BLAS_IN_Trilinos)
+list(FIND LAPACK::all_libs LAPACK LAPACK_IN_Trilinos)
if ((BLAS_IN_Trilinos GREATER -1) AND (LAPACK_IN_Trilinos GREATER -1))
message(STATUS "Looking for BLAS and LAPACK via Trilinos - found")
else()
@@ -117,7 +117,7 @@
"Enable the following in the Trilinos build:\n"
" -D TPL_ENABLE_BLAS=ON\n"
" -D TPL_ENABLE_LAPACK=ON")
- set(Trilinos_IS_MISSING_FEATURES TRUE)
+# set(Trilinos_IS_MISSING_FEATURES TRUE)
endif()
# Search for required features
diff -Naur xyce-9999_or/src/LinearAlgebraServicesPKG/N_LAS_TransformTool.C xyce-9999/src/LinearAlgebraServicesPKG/N_LAS_TransformTool.C
--- xyce-9999_or/src/LinearAlgebraServicesPKG/N_LAS_TransformTool.C 2023-06-15 19:12:44.585504630 +0200
+++ xyce-9999/src/LinearAlgebraServicesPKG/N_LAS_TransformTool.C 2023-06-15 19:16:03.513134501 +0200
@@ -53,6 +53,7 @@
#include <EpetraExt_Isorropia_CrsGraph.h>
#endif
#endif
+#include <EpetraExt_Isorropia_CrsGraph.h>
#ifdef Xyce_AMD
#include <EpetraExt_AMD_CrsGraph.h>

View File

@ -0,0 +1,96 @@
EAPI=8
inherit git-r3 cmake
DESCRIPTION="The Xyce Parallel Electronic Simulator is a SPICE-compatible circuit simulator"
HOMEPAGE="https://xyce.sandia.gov/about-xyce/"
CMAKE_MAKEFILE_GENERATOR=emake
EGIT_REPO_URI="https://github.com/Xyce/Xyce.git"
EGIT_COMMIT="2d93caa9358b276e774ab5906bac6a6b2d563c81"
EGIT_SUBMODULES=( '*' )
KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86"
SLOT="0"
IUSE="cuda openmp"
DEPEND="
sci-libs/fftw
sci-libs/suitesparse
virtual/blas
sci-libs/trilinos
openmp? ( virtual/mpi[nullmpi(+)] )
cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
dev-perl/XML-LibXML
"
RDEPEND="
${DEPEND}
"
PATCHES=(
"${FILESDIR}"/install_fix.patch
"${FILESDIR}"/cuda_fix.patch
)
#src_prepare() {
#./bootstrap
#autoheader
#libtoolize --force --copy
#aclocal -I config
#automake --foreign --add-missing --copy
#autoconf
#autoheader
# eapply_user
# eautoreconf
#}
src_configure() {
#econf \
# LDFLAGS="-L${PREFIX}/lib64/trilinos ${LDFLAGS}" \
# --enable-fftw \
# --enable-stokhos \
# --enable-amesos2 \
# --enable-mpi \
# --enable-superlu \
# --enable-shylu \
# --enable-curl \
# --disable-amd
# ./configure --prefix=/usr
local mycmakeargs=(
# -DCMAKE_INSTALL_PREFIX=/usr
-DXyce_PARALLEL_MPI="$(usex openmp)"
#-DXyce_VERBOSE_LINEAR=True
#-DXyce_DEBUG_CIRCUIT=True
#-DXyce_OP_START=True
#-DXyce_TOPOLOGY=True
#-DXyce_VERBOSE_CONDUCTANCE=True
#-DXyce_VERBOSE_NONLINEAR=True
#-DXyce_VERBOSE_NOX=True
#-DXyce_VERBOSE_TIME=True
-DTrilinos_DIR="${PREFIX}/lib64/cmake/Trilinos"
)
if use openmp; then
[ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
[ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
export CC=mpicc CXX=mpicxx && tc-export CC CXX
fi
if use cuda; then
mycmakeargs+=(
-DCMAKE_C_COMPILER=gcc
-DCMAKE_CXX_COMPILER=nvcc_wrapper
-DCMAKE_CXX_FLAGS:STRING="-allow-unsupported-compiler"
)
export CXX=nvcc_wrapper
fi
CPPFLAGS="-std=c++14" cmake_src_configure
}
#src_install() {
# eninja install
# rm -rf "${D}"/usr/doc
#}
pkg_preinst() {
rm -rf "${D}"/usr/doc
}

View File

@ -0,0 +1,12 @@
AUX gcc-13.patch 627 BLAKE2B dd45523c61b5f328a04ab7397d2bfbf345a15eff1c0290390111b15f67f541d74811c100d9d9930c6a9f2b8da980de0c7ad04ef7067d1d08852102185fba1e60 SHA512 0c0e6d41025f3e331883cf2b3dd21ad5420f74f16d3222a9de17e61386cbd0fa7cfc3ab10beaa983ba42b44a9cfbfa51ab040c4e964a1aa8de47ecb4b7edd750
AUX v13-gcc-13.patch 2199 BLAKE2B 588a656312a38f3034651bc0d286635be4815312cd4c57411a03b7ba8e1e863c8758f114e5f09085468a6801c35f26300dd26f15871f5546428ec9aad698c7da SHA512 84d7a7911b59e985c03d1d6d189d59193ced479464e0c3c07c1dce1caed5cc2a1d76563724a1c09ef15bd0f2a8a98b581d5091a5b2c99861ecdaa3237264e295
AUX v14-gcc13.patch 629 BLAKE2B a61ff618e63e4fc5675670e4b2f53fffc67bba6fe74f8ccfbad69bd9694ef8982b7769a809e634152851fcc47b1cd0d1269458c11e0a8eddfd8acf9917f3b1c2 SHA512 57293c2d8c3a3b869df37d9723db55af82050c76ec2881480ea543c6f1f452cc74c6f24bc2bf682de082902ed1c61b05769d6e5a3da6c7e92b1f595265bcbb8c
AUX v14.patch 2101 BLAKE2B 2c888edcddb386f9256cb0fc85c0386ca1d24c0cfaaa1af08778e802c0fce058f29bc0a63912d46044c8cfa82025e1ba8086c75444d2ec003e2ff4b90543160e SHA512 436a472f9fa5d43c52e12d8d7ebfc961a82e9e9a893c61113980906fcdfff1ec4b38bb2fb5df4b239c8485931b8fad720eda5f19da1c61096e874c0f7f357945
AUX xyce.patch 1991 BLAKE2B 94c0b1a5afc67c0897c51506a8ae3ba82e821e2ededba960907dfac50109e685858d09dce4322fae1c569f7d53ab6ffec8dcc8f0f00b90242f860467399858a0 SHA512 dde23513862d8a79767ecadb3be076fa6f83e0c6867e98e4ea936d37d18c435fd0200197b38deec757eefab076338274f3788c18e73288744739c9f4de47560f
DIST trilinos-13.4.0-patches-r0.tar.xz 8740 BLAKE2B 333ab9ff1acb2f4b08007c7b99b96f023f6c742e4f991fc0ab9dd6595be7e3e319a77d5e329790cedca72d7a9060df837549d28e8a6cb4b8a838570d455ae356 SHA512 f30c16801cadec2a612ab2f7d3ca05c5ddfdfc513343a182562253cdfb58d38fa8b771ab07f7bc6bcb2505d146469da2ddda478f74447de746d5eca850da123e
DIST trilinos-13.4.1.tar.gz 168720416 BLAKE2B 5201c36aa998045f4eab99b67fce25f9a2f2a9524b8ca1147cd8db9ccc306e3df61336df3b2ee981317c8defbae2df9e36546a0e5ddfed3142213e437e4dfba0 SHA512 9c0fb3af2fa625cd0af1309bfa61c212e12657820707348c81355d506e07f540da5e42aa30237fbc80adf257bb636029345f248abaf7ef96fcdaed1c28ec3a19
DIST trilinos-14.0.0.tar.gz 179086187 BLAKE2B 0e0c3e3fa4b88164cd7e90720ec42eb007f8e89734e5537a7eba1f17754faf30c21fa1d77f7e8a7968bdb8bb230596a1adc74f8170577fd7b4eccb2e88c5b8f6 SHA512 b08fcf4f6bf2605267c44c038f352949e5bfe14b853de77e4c80e28f66c088ead1699b1e49f8475f1b98ce5a21238b98a299e760f1373e585c78b65120fa18e5
DIST trilinos-14.2.0.tar.gz 178867695 BLAKE2B 07ff61775399014091aae9c14ad12a69ab19853bc3489c15775490aa3f6e8ae868ac4e90bf046d10bf1ecb1d5558992f0afb0ce656f947336559fcf10085c038 SHA512 c676ff2b59904dc05a0ff434dd164bc96076999a5851c160c5851c124d3c519dd0cc3f088eba19f2000c7d1c2377f4efb2b2b8f9f3ee641b2180f3b99b28ea0b
EBUILD trilinos-13.4.1.ebuild 9560 BLAKE2B bf029cfd7877ab5377dd8ea76eccc7bfac400500ffefcc01fcb78a11e096a17cd0dd140a9e04686d13ee82f33b96dc35795480faae57411e5fad1d016b30c7d4 SHA512 3819f3abf8889a48ab4e62302cfe6018269d13a0505ee057763cdebbf1fd7d3bf0247b81216b89a372a2d1abb38ac6ed49c28ff07ad84a8a32f28f2b107a691b
EBUILD trilinos-14.0.0.ebuild 8451 BLAKE2B d0ca1847ca3f964424304eb9c1abb21d96c7406310d8bccf2049b4aa5267c23878b88352bbd7c23640fa63d903ffa024240e29b988645fbb6cf216bd41ab996b SHA512 cb6774f526e18edf8f94c17f5444982181da7bfefcd18befa8204f97c2ec999209aaeaef9e16df3c567537e891aa905121569183873e2b70883609b7cf2b69bb
EBUILD trilinos-14.2.0.ebuild 8702 BLAKE2B 466091ee4bdc6c27d4efedbd253654a5efefeb3007d0e0e3ebc11b880ccd9ac43fa95cd867b95fe42eb83237381c2e1f444b16e205c777b896e9ebd8a9a27e84 SHA512 38ce37748a95fe9256d0766aa325df0589975cd740be141bf59dc9e9c93b1304df9866d81d56a0e3cef3cc4a59b718b7c3b7635993c183eb7d4d061947742fd1

View File

@ -0,0 +1,11 @@
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp Trilinos-trilinos-release-13-4-1/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp
--- Trilinos-trilinos-release-13-4-1_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-05-13 23:56:33.699073588 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-05-13 23:56:59.079010911 +0200
@@ -43,6 +43,7 @@
#define TEUCHOS_BIG_UINT_DECL_HPP
#include <iosfwd>
+#include <cstdint>
/*! \file Teuchos_BigUIntDecl.hpp
\brief Arbitrary-precision unsigned integer declaration.

View File

@ -0,0 +1,50 @@
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp Trilinos-trilinos-release-13-4-1/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp
--- Trilinos-trilinos-release-13-4-1_or/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp 2023-06-11 21:27:20.637681333 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp 2023-06-11 21:28:23.316933920 +0200
@@ -46,6 +46,7 @@
#include <ostream>
#include <sstream>
+#include <cstdint>
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp Trilinos-trilinos-release-13-4-1/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp
--- Trilinos-trilinos-release-13-4-1_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-12 22:13:54.653058491 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-12 22:22:22.234504055 +0200
@@ -49,6 +49,8 @@
using ExecSpace = Kokkos::Experimental::HIP;
#elif defined(KOKKOS_ENABLE_OPENMP)
using ExecSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using ExecSpace = Kokkos::Threads;
#else
using ExecSpace = Kokkos::Serial;
#endif
@@ -59,6 +61,8 @@
using HostExecSpace = Kokkos::Serial;
#elif defined(KOKKOS_ENABLE_OPENMP)
using HostExecSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using HostExecSpace = Kokkos::Threads;
#else
using HostExecSpace = Kokkos::Serial;
#endif
@@ -69,6 +73,8 @@
using MemSpace = Kokkos::Experimental::HIPSpace;
#elif defined(KOKKOS_ENABLE_OPENMP)
using MemSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using MemSpace = Kokkos::Threads;
#else
using MemSpace = Kokkos::HostSpace;
#endif
@@ -83,6 +89,8 @@
using UVMMemSpace = Kokkos::Experimental::HIPHostPinnedSpace;
#elif defined(KOKKOS_ENABLE_OPENMP)
using UVMMemSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using UVMMemSpace = Kokkos::Threads;
#else
using UVMMemSpace = Kokkos::HostSpace;
#endif

View File

@ -0,0 +1,11 @@
diff -Naur Trilinos-trilinos-release-14-0-0_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp Trilinos-trilinos-release-14-0-0/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp
--- Trilinos-trilinos-release-14-0-0_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-06-14 22:54:06.565526085 +0200
+++ Trilinos-trilinos-release-14-0-0/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-06-14 22:54:26.028613299 +0200
@@ -43,6 +43,7 @@
#define TEUCHOS_BIG_UINT_DECL_HPP
#include <iosfwd>
+#include <cstdint>
/*! \file Teuchos_BigUIntDecl.hpp
\brief Arbitrary-precision unsigned integer declaration.

View File

@ -0,0 +1,67 @@
diff -Naur Trilinos-trilinos-release-14-0-0_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp Trilinos-trilinos-release-14-0-0/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp
--- Trilinos-trilinos-release-14-0-0_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-14 23:24:20.313033330 +0200
+++ Trilinos-trilinos-release-14-0-0/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-14 23:31:11.551230025 +0200
@@ -39,36 +39,21 @@
namespace stk {
namespace ngp {
-#ifdef KOKKOS_ENABLE_CUDA
-using ExecSpace = Kokkos::Cuda;
-#elif defined(KOKKOS_ENABLE_HIP)
-using ExecSpace = Kokkos::Experimental::HIP;
-#elif defined(KOKKOS_ENABLE_OPENMP)
-using ExecSpace = Kokkos::OpenMP;
-#else
-using ExecSpace = Kokkos::Serial;
-#endif
+using ExecSpace = Kokkos::DefaultExecutionSpace;
-#ifdef KOKKOS_ENABLE_CUDA
-using HostExecSpace = Kokkos::Serial;
-#elif defined(KOKKOS_ENABLE_HIP)
-using HostExecSpace = Kokkos::Serial;
-#elif defined(KOKKOS_ENABLE_OPENMP)
-using HostExecSpace = Kokkos::OpenMP;
-#else
-using HostExecSpace = Kokkos::Serial;
-#endif
+using HostExecSpace = Kokkos::DefaultHostExecutionSpace;
#ifdef KOKKOS_ENABLE_CUDA
using MemSpace = Kokkos::CudaSpace;
#elif defined(KOKKOS_ENABLE_HIP)
-using MemSpace = Kokkos::Experimental::HIPSpace;
-#elif defined(KOKKOS_ENABLE_OPENMP)
-using MemSpace = Kokkos::OpenMP;
+using MemSpace = Kokkos::HIPSpace;
#else
-using MemSpace = Kokkos::HostSpace;
+using MemSpace = ExecSpace::memory_space;
#endif
+#ifdef KOKKOS_HAS_SHARED_SPACE
+using UVMMemSpace = Kokkos::SharedSpace;
+#else
#ifdef KOKKOS_ENABLE_CUDA
#ifdef KOKKOS_ENABLE_CUDA_UVM
using UVMMemSpace = Kokkos::CudaUVMSpace;
@@ -82,7 +67,11 @@
#else
using UVMMemSpace = Kokkos::HostSpace;
#endif
+#endif
+#ifdef KOKKOS_HAS_SHARED_SPACE
+using HostPinnedSpace = Kokkos::SharedHostPinnedSpace;
+#else
#ifdef KOKKOS_ENABLE_CUDA
using HostPinnedSpace = Kokkos::CudaHostPinnedSpace;
#elif defined(KOKKOS_ENABLE_HIP)
@@ -90,6 +79,7 @@
#else
using HostPinnedSpace = MemSpace;
#endif
+#endif
#ifdef KOKKOS_ENABLE_HIP
template <typename ExecutionSpace>

View File

@ -0,0 +1,48 @@
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/amesos/src/Amesos_CSparse.cpp Trilinos-trilinos-release-13-4-1/packages/amesos/src/Amesos_CSparse.cpp
--- Trilinos-trilinos-release-13-4-1_or/packages/amesos/src/Amesos_CSparse.cpp 2023-05-14 12:45:09.733199042 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/amesos/src/Amesos_CSparse.cpp 2023-05-14 12:45:57.463182638 +0200
@@ -26,7 +26,7 @@
// ***********************************************************************
// @HEADER
-#ifdef HAVE_AMESOS_CSPARSE
+//#ifdef HAVE_AMESOS_CSPARSE
#include "Amesos_CSparse.h"
#include "Epetra_Map.h"
#include "Epetra_Import.h"
@@ -134,8 +134,8 @@
if (Comm().MyPID() == 0)
{
- csMatrix.p = (ptrdiff_t *) malloc((SerialMatrix().NumMyRows()+1)*sizeof(ptrdiff_t));
- csMatrix.i = (ptrdiff_t *) malloc(SerialMatrix().NumMyNonzeros()*sizeof(ptrdiff_t));
+ csMatrix.p = (int*)(ptrdiff_t *) malloc((SerialMatrix().NumMyRows()+1)*sizeof(ptrdiff_t));
+ csMatrix.i = (int*)(ptrdiff_t *) malloc(SerialMatrix().NumMyNonzeros()*sizeof(ptrdiff_t));
csMatrix.x = (double *) malloc(SerialMatrix().NumMyNonzeros()*sizeof(double));
csMatrix.nzmax = SerialMatrix().NumMyNonzeros();
csMatrix.m = SerialMatrix().NumMyRows();
@@ -525,4 +525,4 @@
AMESOS_RETURN(error);
}
-#endif
+//#endif
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/amesos/src/Amesos_CSparse.h Trilinos-trilinos-release-13-4-1/packages/amesos/src/Amesos_CSparse.h
--- Trilinos-trilinos-release-13-4-1_or/packages/amesos/src/Amesos_CSparse.h 2023-05-14 12:45:09.733199042 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/amesos/src/Amesos_CSparse.h 2023-05-14 12:45:22.143194802 +0200
@@ -28,7 +28,7 @@
#ifndef AMESOS_CSPARSE_H
#define AMESOS_CSPARSE_H
-#ifdef HAVE_AMESOS_CSPARSE
+//#ifdef HAVE_AMESOS_CSPARSE
#include "Amesos_ConfigDefs.h"
#include "Amesos_BaseSolver.h"
@@ -212,5 +212,5 @@
}; // class Amesos_CSparse
-#endif
+//#endif
#endif // AMESOS_CSPARSE_H

View File

@ -0,0 +1,314 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake toolchain-funcs
DESCRIPTION="Scientific library collection for large scale problems"
HOMEPAGE="http://trilinos.sandia.gov/"
MY_PV="${PV//\./-}"
PATCHSET="r0"
SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~tamiko/distfiles/${PN}-13.4.0-patches-${PATCHSET}.tar.xz"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
LICENSE="BSD LGPL-2.1"
SLOT="0"
IUSE="
adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
superlu taucs tbb test threads tvmet yaml zlib X superlu_dist
"
# TODO: fix export cmake function for tests
RESTRICT="test"
RDEPEND="
!dev-cpp/kokkos
dev-libs/boost:=
sys-libs/binutils-libs:=
virtual/blas
virtual/lapack
virtual/mpi
adolc? ( sci-libs/adolc )
arprec? ( sci-libs/arprec )
clp? ( sci-libs/coinor-clp )
cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
eigen? ( dev-cpp/eigen:3 )
glpk? ( sci-mathematics/glpk )
gtest? ( dev-cpp/gtest )
hdf5? ( sci-libs/hdf5:=[mpi] )
hypre? ( sci-libs/hypre:= )
hwloc? ( sys-apps/hwloc:= )
matio? ( sci-libs/matio )
mkl? ( sci-libs/mkl )
metis? ( sci-libs/metis )
mumps? ( sci-libs/mumps )
netcdf? ( sci-libs/netcdf:= )
petsc? ( sci-mathematics/petsc )
qd? ( sci-libs/qd )
scalapack? ( sci-libs/scalapack )
scotch? ( sci-libs/scotch:= )
sparse? ( sci-libs/cxsparse sci-libs/umfpack )
superlu? ( <=sci-libs/superlu-5.0 )
superlu_dist? ( <sci-libs/superlu_dist-8.1.0 sci-libs/parmetis:= )
taucs? ( sci-libs/taucs )
tbb? ( dev-cpp/tbb:= )
tvmet? ( dev-libs/tvmet )
yaml? ( dev-cpp/yaml-cpp:= )
zlib? ( sys-libs/zlib )
X? ( x11-libs/libX11 )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
PATCHES=(
"${WORKDIR}"/patches
"${FILESDIR}"/v13-gcc-13.patch
"${FILESDIR}"/gcc-13.patch
"${FILESDIR}"/xyce.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
trilinos_conf() {
local dirs libs d
for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
dirs="${dirs};${d:2}"
done
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
libs="${libs};${d:2}"
done
[[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
dirs=""
for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
dirs="${dirs};${d:2}"
done
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
}
#
# The following packages are currently disabled:
# - Adelus/Zadelus due to underlinkage.
# - Moertel due to underlinkage
# - SEACAS is incompatible with netcdf, see
# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
#
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX="${EPREFIX}"
-DCMAKE_SKIP_INSTALL_RPATH=ON
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
-DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
-DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
-DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
-DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
-DTrilinos_ENABLE_Adelus=OFF
-DTrilinos_ENABLE_Moertel=OFF
-DTrilinos_ENABLE_PyTrilinos=OFF
-DTrilinos_ENABLE_SEACAS=OFF
-DTrilinos_ENABLE_Amesos=ON
-DTrilinos_ENABLE_AztecOO=ON
-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON
-DTrilinos_ENABLE_COMPLEX_FLOAT=ON
-DTrilinos_ENABLE_EpetraExt=ON
-DTrilinos_ENABLE_Epetra=ON
-DTrilinos_ENABLE_Ifpack=ON
-DTrilinos_ENABLE_ML=ON
-DTrilinos_ENABLE_MueLu=ON
-DTrilinos_ENABLE_OpenMP="$(usex openmp)"
-DTrilinos_ENABLE_ROL=ON
-DTrilinos_ENABLE_Sacado=ON
-DTrilinos_ENABLE_Teuchos=ON
-DTrilinos_ENABLE_Tpetra=ON
-DTrilinos_ENABLE_Zoltan=ON
-DTrilinos_ENABLE_TESTS="$(usex test)"
-DTrilinos_ENABLE_NOX=ON
-DTrilinos_ENABLE_Triutils=ON
-DTrilinos_ENABLE_Belos=ON
-DTrilinos_ENABLE_TrilinosCouplings=ON
-DEpetraExt_BUILD_BTF=ON
-DEpetraExt_BUILD_EXPERIMENTAL=ON
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON
-DTrilinos_ENABLE_Amesos2=ON
-DAmesos2_ENABLE_KLU2=ON
# Enable Basker solver without Amesos2
-DKokkos_ENABLE_OPENMP="$(usex openmp)"
-DTrilinos_ENABLE_Kokkos=ON
-DTrilinos_ENABLE_ShyLU=ON
-DTrilinos_ENABLE_ShyLU_NodeBasker=ON
# Enable ShyLU solver
#-DTrilinos_ENABLE_ShyLU_DD=ON
#-DTrilinos_ENABLE_ShyLU_DDCore=ON
-DAmesos2_ENABLE_Basker=ON
-DCMAKE_CXX_FLAGS:STRING="-DSHYLU_NODEBASKER"
#-DAmesos2_ENABLE_SuperLU="$(usex superlu)"
#-DAmesos2_ENABLE_SuperLUDist="$(usex superlu_dist)"
#-DAmesos2_ENABLE_Eperta=ON
#-DTrilinos_ENABLE_ShyLU_DD=ON
#-DTrilinos_ENABLE_ShyLU_DDBDDC=ON
#-DTrilinos_ENABLE_ShyLU_NodeFastILU=ON
#-DTrilinos_ENABLE_ShyLU_DDCore=ON
#-DTrilinos_ENABLE_ShyLU_NodeFastILU=ON
#-DTpetra_INST_COMPLEX_FLOAT=OFF
#-DTpetra_INST_COMPLEX_DOUBLE=OFF
#-DAnasazi_ENABLE_COMPLEX=OFF
#-DAnasazi_ENABLE_Tpetra=OFF
-DTPL_ENABLE_BinUtils=ON
-DTPL_ENABLE_BLAS=ON
-DTPL_ENABLE_LAPACK=ON
-DTPL_ENABLE_MPI=ON
-DTPL_ENABLE_ADOLC="$(usex adolc)"
-DTPL_ENABLE_AMD="$(usex sparse)"
-DTPL_ENABLE_ARPREC="$(usex arprec)"
-DTPL_ENABLE_BLACS="$(usex scalapack)"
-DTPL_ENABLE_BoostLib=ON
-DTPL_ENABLE_Boost=ON
-DTPL_ENABLE_Clp="$(usex clp)"
-DTPL_ENABLE_CSparse="$(usex sparse)"
-DTPL_ENABLE_CUDA="$(usex cuda)"
-DTPL_ENABLE_CUSPARSE="$(usex cuda)"
-DTPL_ENABLE_Eigen="$(usex eigen)"
-DTPL_ENABLE_GLPK="$(usex glpk)"
-DTPL_ENABLE_gtest="$(usex gtest)"
-DTPL_ENABLE_HDF5="$(usex hdf5)"
-DTPL_ENABLE_HWLOC="$(usex hwloc)"
-DTPL_ENABLE_HYPRE="$(usex hypre)"
-DTPL_ENABLE_Matio="$(usex matio)"
-DTPL_ENABLE_METIS="$(usex metis)"
-DTPL_ENABLE_MKL="$(usex mkl)"
-DTPL_ENABLE_MUMPS="$(usex mumps)"
-DTPL_ENABLE_Netcdf="$(usex netcdf)"
-DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
-DTPL_ENABLE_PETSC="$(usex petsc)"
-DTPL_ENABLE_Pthread="$(usex threads)"
-DTPL_ENABLE_QD="$(usex qd)"
-DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
-DTPL_ENABLE_Scotch="$(usex scotch)"
-DTPL_ENABLE_SuperLU="$(usex superlu)"
-DTPL_ENABLE_SuperLUDist="$(usex superlu_dist)"
-DTPL_ENABLE_ParMETIS="$(usex superlu_dist)"
-DTPL_ENABLE_TAUCS="$(usex taucs)"
-DTPL_ENABLE_TBB="$(usex tbb)"
-DTPL_ENABLE_Thrust="$(usex cuda)"
-DTPL_ENABLE_TVMET="$(usex tvmet)"
-DTPL_ENABLE_UMFPACK="$(usex sparse)"
-DTPL_ENABLE_X11="$(usex X)"
-DTPL_ENABLE_yaml-cpp="$(usex yaml)"
-DTPL_ENABLE_Zlib="$(usex zlib)"
)
#
# Make sure some critical configuration options are always set
# correctly independently of what Trilinos dependency resolver thinks
# it should be doing.
#
local mycmakeargs+=(
-DAmesos2_ENABLE_LAPACK=ON
-DAmesos2_ENABLE_MUMPS=OFF
-DTpetra_INST_SERIAL=ON
)
use eigen && \
mycmakeargs+=(
-DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
)
use hypre && \
mycmakeargs+=(
-DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
)
use scotch && \
mycmakeargs+=(
-DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
)
# cxsparse is a rewrite of csparse + extras
use sparse && \
mycmakeargs+=(
-DCSparse_LIBRARY_NAMES="cxsparse"
)
# mandatory blas and lapack
trilinos_conf blas BLAS
trilinos_conf lapack LAPACK
use superlu && trilinos_conf superlu SuperLU
use metis && trilinos_conf metis METIS
# blacs library is included in scalapack these days
if use scalapack; then
trilinos_conf scalapack SCALAPACK
mycmakeargs+=(
-DBLACS_LIBRARY_NAMES="scalapack"
-DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
)
fi
#
# Make sure we use the compiler wrappers in order to build trilinos.
#
[ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
[ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
export CC=mpicc CXX=mpicxx && tc-export CC CXX
mycmakeargs+=(
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_C_COMPILER=mpicc
-DCMAKE_Fortran_COMPILER=mpif77
)
if use cuda ; then
export CC=nvcc_wrapper CXX=nvcc_wrapper && tc-export CC CXX
#export OMPI_CXX=/usr/lib64/trilinos/bin/nvcc_wrapper && tc-export OMPI_CXX
mycmakeargs+=(
-DCMAKE_CXX_COMPILER=/usr/lib64/trilinos/bin/nvcc_wrapper
-DCMAKE_C_COMPILER=/usr/lib64/trilinos/bin/nvcc_wrapper
#-DCMAKE_CXX_FLAGS="-g -lineinfo -Xcudafe --diag_suppress=conversion_function_not_usable -Xcudafe --diag_suppress=cc_clobber_ignored -Xcudafe --diag_suppress=code_is_unreachable"
-DTPL_ENABLE_MPI=ON
-DTPL_ENABLE_CUDA=ON
)
fi
# Trilinos needs a custom build type:
local CMAKE_BUILD_TYPE=Release
cmake_src_configure
}
src_install() {
cmake_src_install
mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
mkdir -p "${ED}/usr/$(get_libdir)"/cmake
mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
# Fix up include paths:
sed -i -e 's#external_packages#trilinos/external_packages#g' \
"${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
#
# register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
# has a chance to pick up the libraries...
#
cat >> "${T}"/99trilinos <<- EOF
LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
EOF
doenvd "${T}"/99trilinos
}

View File

@ -0,0 +1,285 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake toolchain-funcs
DESCRIPTION="Scientific library collection for large scale problems"
HOMEPAGE="http://trilinos.sandia.gov/"
MY_PV="${PV//\./-}"
PATCHSET="r0"
SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
LICENSE="BSD LGPL-2.1"
SLOT="0"
IUSE="
adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
superlu taucs tbb test threads tvmet yaml zlib X
"
# TODO: fix export cmake function for tests
RESTRICT="test"
RDEPEND="
!dev-cpp/kokkos
dev-libs/boost:=
sys-libs/binutils-libs:=
virtual/blas
virtual/lapack
virtual/mpi
adolc? ( sci-libs/adolc )
arprec? ( sci-libs/arprec )
clp? ( sci-libs/coinor-clp )
cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
eigen? ( dev-cpp/eigen:3 )
glpk? ( sci-mathematics/glpk )
gtest? ( dev-cpp/gtest )
hdf5? ( sci-libs/hdf5:=[mpi] )
hypre? ( sci-libs/hypre:= )
hwloc? ( sys-apps/hwloc:= )
matio? ( sci-libs/matio )
mkl? ( sci-libs/mkl )
metis? ( sci-libs/metis )
mumps? ( sci-libs/mumps )
netcdf? ( sci-libs/netcdf:= )
petsc? ( sci-mathematics/petsc )
qd? ( sci-libs/qd )
scalapack? ( sci-libs/scalapack )
scotch? ( sci-libs/scotch:= )
sparse? ( sci-libs/cxsparse sci-libs/umfpack )
superlu? ( <sci-libs/superlu-5.0 )
taucs? ( sci-libs/taucs )
tbb? ( dev-cpp/tbb:= )
tvmet? ( dev-libs/tvmet )
yaml? ( dev-cpp/yaml-cpp:= )
zlib? ( sys-libs/zlib )
X? ( x11-libs/libX11 )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
PATCHES=(
"${FILESDIR}"/v14-gcc13.patch
"${FILESDIR}"/v14.patch
"${FILESDIR}"/xyce.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
trilinos_conf() {
local dirs libs d
for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
dirs="${dirs};${d:2}"
done
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
libs="${libs};${d:2}"
done
[[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
dirs=""
for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
dirs="${dirs};${d:2}"
done
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
}
#
# The following packages are currently disabled:
# - Adelus/Zadelus due to underlinkage.
# - Moertel due to underlinkage
# - SEACAS is incompatible with netcdf, see
# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
#
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX="${EPREFIX}"
-DCMAKE_SKIP_INSTALL_RPATH=ON
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
-DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
-DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
-DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
-DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
-DTrilinos_ENABLE_Adelus=OFF
-DTrilinos_ENABLE_Moertel=OFF
-DTrilinos_ENABLE_PyTrilinos=OFF
-DTrilinos_ENABLE_SEACAS=OFF
-DTrilinos_ENABLE_Amesos=ON
-DTrilinos_ENABLE_AztecOO=ON
-DTrilinos_ENABLE_EpetraExt=ON
-DTrilinos_ENABLE_Epetra=ON
-DTrilinos_ENABLE_Ifpack=ON
-DTrilinos_ENABLE_ML=ON
-DTrilinos_ENABLE_MueLu=ON
-DTrilinos_ENABLE_OpenMP="$(usex openmp)"
-DTrilinos_ENABLE_ROL=ON
-DTrilinos_ENABLE_Sacado=ON
-DTrilinos_ENABLE_Teuchos=ON
-DTrilinos_ENABLE_Tpetra=ON
-DTrilinos_ENABLE_Zoltan=ON
-DTrilinos_ENABLE_TESTS="$(usex test)"
-DTPL_ENABLE_BinUtils=ON
-DTPL_ENABLE_BLAS=ON
-DTPL_ENABLE_LAPACK=ON
-DTPL_ENABLE_MPI=ON
-DTPL_ENABLE_ADOLC="$(usex adolc)"
-DTPL_ENABLE_AMD="$(usex sparse)"
-DTPL_ENABLE_ARPREC="$(usex arprec)"
-DTPL_ENABLE_BLACS="$(usex scalapack)"
-DTPL_ENABLE_BoostLib=ON
-DTPL_ENABLE_Boost=ON
-DTPL_ENABLE_Clp="$(usex clp)"
-DTPL_ENABLE_CSparse="$(usex sparse)"
-DTPL_ENABLE_CUDA="$(usex cuda)"
-DTPL_ENABLE_CUSPARSE="$(usex cuda)"
-DTPL_ENABLE_Eigen="$(usex eigen)"
-DTPL_ENABLE_GLPK="$(usex glpk)"
-DTPL_ENABLE_gtest="$(usex gtest)"
-DTPL_ENABLE_HDF5="$(usex hdf5)"
-DTPL_ENABLE_HWLOC="$(usex hwloc)"
-DTPL_ENABLE_HYPRE="$(usex hypre)"
-DTPL_ENABLE_Matio="$(usex matio)"
-DTPL_ENABLE_METIS="$(usex metis)"
-DTPL_ENABLE_MKL="$(usex mkl)"
-DTPL_ENABLE_MUMPS="$(usex mumps)"
-DTPL_ENABLE_Netcdf="$(usex netcdf)"
-DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
-DTPL_ENABLE_PETSC="$(usex petsc)"
-DTPL_ENABLE_Pthread="$(usex threads)"
-DTPL_ENABLE_QD="$(usex qd)"
-DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
-DTPL_ENABLE_Scotch="$(usex scotch)"
-DTPL_ENABLE_SuperLU="$(usex superlu)"
-DTPL_ENABLE_TAUCS="$(usex taucs)"
-DTPL_ENABLE_TBB="$(usex tbb)"
#-DTPL_ENABLE_Thrust="$(usex cuda)"
-DTPL_ENABLE_TVMET="$(usex tvmet)"
-DTPL_ENABLE_UMFPACK="$(usex sparse)"
-DTPL_ENABLE_X11="$(usex X)"
-DTPL_ENABLE_yaml-cpp="$(usex yaml)"
-DTPL_ENABLE_Zlib="$(usex zlib)"
)
local mycmakeargs+=(
# Xyce base depend
-DTrilinos_ENABLE_TrilinosCouplings=ON
-DEpetraExt_BUILD_BTF=ON
-DEpetraExt_BUILD_EXPERIMENTAL=ON
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON
#-DTeuchos_ENABLE_COMPLEX=ON
# error fixes
-DTrilinos_ENABLE_COMPLEX=ON
-DAmesos_ENABLE_CSparse="$(usex sparse)"
#-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON
#-DTrilinos_ENABLE_COMPLEX_FLOAT=ON
#-DTeuchos_ENABLE_FLOAT=ON
#-DTpetra_INST_FLOAT=ON
# more solvers
#-DKokkos_ENABLE_THREADS="$(usex threads)"
#-DTpetra_INST_PTHREAD="$(usex threads)"
-DTrilinos_ENABLE_ShyLU_NodeTacho=OFF
#
-DAmesos_ENABLE_ParMETIS=ON
# Basker solver
-DAmesos2_ENABLE_Basker=ON
-DCMAKE_CXX_FLAGS:STRING="-DSHYLU_NODEBASKER"
)
#
# Make sure some critical configuration options are always set
# correctly independently of what Trilinos dependency resolver thinks
# it should be doing.
#
local mycmakeargs+=(
-DAmesos2_ENABLE_LAPACK=ON
-DAmesos2_ENABLE_MUMPS=OFF
-DTpetra_INST_SERIAL=ON
)
use eigen && \
mycmakeargs+=(
-DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
)
use hypre && \
mycmakeargs+=(
-DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
)
use scotch && \
mycmakeargs+=(
-DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
)
# cxsparse is a rewrite of csparse + extras
use sparse && \
mycmakeargs+=(
-DCSparse_LIBRARY_NAMES="cxsparse"
)
# mandatory blas and lapack
trilinos_conf blas BLAS
trilinos_conf lapack LAPACK
use superlu && trilinos_conf superlu SuperLU
use metis && trilinos_conf metis METIS
# blacs library is included in scalapack these days
if use scalapack; then
trilinos_conf scalapack SCALAPACK
mycmakeargs+=(
-DBLACS_LIBRARY_NAMES="scalapack"
-DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
)
fi
#
# Make sure we use the compiler wrappers in order to build trilinos.
#
[ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
[ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
export CC=mpicc CXX=mpicxx && tc-export CC CXX
# Trilinos needs a custom build type:
local CMAKE_BUILD_TYPE=Release
cmake_src_configure
}
src_install() {
cmake_src_install
# Clean up the mess:
# Let us move the bin directory out of the way to avoid potential
# clashes due to very generically named binaries such as
# »nvcc_wrapper«, etc.
mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
# Move the cmake directory to the right location:
mkdir -p "${ED}/usr/$(get_libdir)"/cmake
mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
# Fix up include paths:
sed -i -e 's#external_packages#trilinos/external_packages#g' \
"${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
# Register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
# has a chance to pick up the libraries, also add Trilinos' binaries ot
# the PATH environment variable.
cat >> "${T}"/99trilinos <<- EOF
LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
EOF
doenvd "${T}"/99trilinos
}

View File

@ -0,0 +1,297 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake toolchain-funcs
DESCRIPTION="Scientific library collection for large scale problems"
HOMEPAGE="http://trilinos.sandia.gov/"
MY_PV="${PV//\./-}"
PATCHSET="r0"
SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
LICENSE="BSD LGPL-2.1"
SLOT="0"
IUSE="
adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
superlu taucs tbb test threads tvmet yaml zlib X
"
# TODO: fix export cmake function for tests
RESTRICT="test"
RDEPEND="
!dev-cpp/kokkos
dev-libs/boost:=
sys-libs/binutils-libs:=
virtual/blas
virtual/lapack
virtual/mpi
adolc? ( sci-libs/adolc )
arprec? ( sci-libs/arprec )
clp? ( sci-libs/coinor-clp )
cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
eigen? ( dev-cpp/eigen:3 )
glpk? ( sci-mathematics/glpk )
gtest? ( dev-cpp/gtest )
hdf5? ( sci-libs/hdf5:=[mpi] )
hypre? ( sci-libs/hypre:= )
hwloc? ( sys-apps/hwloc:= )
matio? ( sci-libs/matio )
mkl? ( sci-libs/mkl )
metis? ( sci-libs/metis )
mumps? ( sci-libs/mumps )
netcdf? ( sci-libs/netcdf:= )
petsc? ( sci-mathematics/petsc )
qd? ( sci-libs/qd )
scalapack? ( sci-libs/scalapack )
scotch? ( sci-libs/scotch:= )
sparse? ( sci-libs/cxsparse sci-libs/umfpack )
superlu? ( <sci-libs/superlu-5.0 )
taucs? ( sci-libs/taucs )
tbb? ( dev-cpp/tbb:= )
tvmet? ( dev-libs/tvmet )
yaml? ( dev-cpp/yaml-cpp:= )
zlib? ( sys-libs/zlib )
X? ( x11-libs/libX11 )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
PATCHES=(
"${FILESDIR}"/xyce.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
trilinos_conf() {
local dirs libs d
for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
dirs="${dirs};${d:2}"
done
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
libs="${libs};${d:2}"
done
[[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
dirs=""
for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
dirs="${dirs};${d:2}"
done
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
}
#
# The following packages are currently disabled:
# - Adelus/Zadelus due to underlinkage.
# - Moertel due to underlinkage
# - SEACAS is incompatible with netcdf, see
# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
#
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX="${EPREFIX}"
-DCMAKE_SKIP_INSTALL_RPATH=ON
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
-DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
-DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
-DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
-DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
-DTrilinos_ENABLE_Adelus=OFF
-DTrilinos_ENABLE_Moertel=OFF
-DTrilinos_ENABLE_PyTrilinos=OFF
-DTrilinos_ENABLE_SEACAS=OFF
-DTrilinos_ENABLE_Amesos=ON
-DTrilinos_ENABLE_AztecOO=ON
-DTrilinos_ENABLE_EpetraExt=ON
-DTrilinos_ENABLE_Epetra=ON
-DTrilinos_ENABLE_Ifpack=ON
-DTrilinos_ENABLE_ML=ON
-DTrilinos_ENABLE_MueLu=OFF
-DTrilinos_ENABLE_OpenMP="$(usex openmp)"
-DTrilinos_ENABLE_ROL=ON
-DTrilinos_ENABLE_Sacado=ON
-DTrilinos_ENABLE_Teuchos=ON
-DTrilinos_ENABLE_Tpetra=ON
-DTrilinos_ENABLE_Zoltan=ON
-DTrilinos_ENABLE_TESTS="$(usex test)"
-DTPL_ENABLE_BinUtils=ON
-DTPL_ENABLE_BLAS=ON
-DTPL_ENABLE_LAPACK=ON
-DTPL_ENABLE_MPI=ON
-DTPL_ENABLE_ADOLC="$(usex adolc)"
-DTPL_ENABLE_AMD="$(usex sparse)"
-DTPL_ENABLE_ARPREC="$(usex arprec)"
-DTPL_ENABLE_BLACS="$(usex scalapack)"
-DTPL_ENABLE_BoostLib=ON
-DTPL_ENABLE_Boost=ON
-DTPL_ENABLE_Clp="$(usex clp)"
-DTPL_ENABLE_CSparse="$(usex sparse)"
-DTPL_ENABLE_CUDA="$(usex cuda)"
-DTPL_ENABLE_CUSPARSE="$(usex cuda)"
-DTPL_ENABLE_Eigen="$(usex eigen)"
-DTPL_ENABLE_GLPK="$(usex glpk)"
-DTPL_ENABLE_gtest="$(usex gtest)"
-DTPL_ENABLE_HDF5="$(usex hdf5)"
-DTPL_ENABLE_HWLOC="$(usex hwloc)"
-DTPL_ENABLE_HYPRE="$(usex hypre)"
-DTPL_ENABLE_Matio="$(usex matio)"
-DTPL_ENABLE_METIS="$(usex metis)"
-DTPL_ENABLE_MKL="$(usex mkl)"
-DTPL_ENABLE_MUMPS="$(usex mumps)"
-DTPL_ENABLE_Netcdf="$(usex netcdf)"
-DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
-DTPL_ENABLE_PETSC="$(usex petsc)"
-DTPL_ENABLE_Pthread="$(usex threads)"
-DTPL_ENABLE_QD="$(usex qd)"
-DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
-DTPL_ENABLE_Scotch="$(usex scotch)"
-DTPL_ENABLE_SuperLU="$(usex superlu)"
-DTPL_ENABLE_TAUCS="$(usex taucs)"
-DTPL_ENABLE_TBB="$(usex tbb)"
#-DTPL_ENABLE_Thrust="$(usex cuda)"
-DTPL_ENABLE_TVMET="$(usex tvmet)"
-DTPL_ENABLE_UMFPACK="$(usex sparse)"
-DTPL_ENABLE_X11="$(usex X)"
-DTPL_ENABLE_yaml-cpp="$(usex yaml)"
-DTPL_ENABLE_Zlib="$(usex zlib)"
)
local mycmakeargs+=(
# Xyce base depend
-DTrilinos_ENABLE_TrilinosCouplings=ON
-DEpetraExt_BUILD_BTF=ON
-DEpetraExt_BUILD_EXPERIMENTAL=ON
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON
-DTeuchos_ENABLE_COMPLEX=ON
# error fixes
-DTrilinos_ENABLE_COMPLEX=ON
-DAmesos_ENABLE_CSparse="$(usex sparse)"
-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON
-DTrilinos_ENABLE_COMPLEX_FLOAT=ON
-DTeuchos_ENABLE_FLOAT=ON
-DTpetra_INST_FLOAT=ON
# more solvers
#-DKokkos_ENABLE_THREADS="$(usex threads)"
#-DTpetra_INST_PTHREAD="$(usex threads)"
-DTrilinos_ENABLE_ShyLU_NodeTacho=OFF
#
-DAmesos_ENABLE_ParMETIS=ON
# Basker solver
-DAmesos2_ENABLE_Basker=ON
-DCMAKE_CXX_FLAGS:STRING="-DSHYLU_NODEBASKER"
)
if use cuda; then
mycmakeargs+=(
-DCMAKE_C_COMPILER=gcc
-DCMAKE_CXX_COMPILER=nvcc_wrapper
-DKokkos_ENABLE_CUDA=ON
-DKokkos_ENABLE_CUDA_LAMBDA=ON
-DKokkos_ARCH_TURING75=ON
-DCMAKE_CXX_FLAGS:STRING="-allow-unsupported-compiler"
)
export CXX=nvcc_wrapper
fi
#
# Make sure some critical configuration options are always set
# correctly independently of what Trilinos dependency resolver thinks
# it should be doing.
#
local mycmakeargs+=(
-DAmesos2_ENABLE_LAPACK=ON
-DAmesos2_ENABLE_MUMPS=OFF
-DTpetra_INST_SERIAL=ON
)
use eigen && \
mycmakeargs+=(
-DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
)
use hypre && \
mycmakeargs+=(
-DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
)
use scotch && \
mycmakeargs+=(
-DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
)
# cxsparse is a rewrite of csparse + extras
use sparse && \
mycmakeargs+=(
-DCSparse_LIBRARY_NAMES="cxsparse"
)
# mandatory blas and lapack
trilinos_conf blas BLAS
trilinos_conf lapack LAPACK
use superlu && trilinos_conf superlu SuperLU
use metis && trilinos_conf metis METIS
# blacs library is included in scalapack these days
if use scalapack; then
trilinos_conf scalapack SCALAPACK
mycmakeargs+=(
-DBLACS_LIBRARY_NAMES="scalapack"
-DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
)
fi
#
# Make sure we use the compiler wrappers in order to build trilinos.
#
if use openmp; then
[ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
[ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
#export CC=mpicc CXX=mpicxx && tc-export CC CXX
fi
# Trilinos needs a custom build type:
local CMAKE_BUILD_TYPE=Release
cmake_src_configure
}
src_install() {
cmake_src_install
# Clean up the mess:
# Let us move the bin directory out of the way to avoid potential
# clashes due to very generically named binaries such as
# »nvcc_wrapper«, etc.
mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
# Move the cmake directory to the right location:
mkdir -p "${ED}/usr/$(get_libdir)"/cmake
mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
# Fix up include paths:
sed -i -e 's#external_packages#trilinos/external_packages#g' \
"${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
# Register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
# has a chance to pick up the libraries, also add Trilinos' binaries ot
# the PATH environment variable.
cat >> "${T}"/99trilinos <<- EOF
LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
EOF
doenvd "${T}"/99trilinos
}