mirror of
https://github.com/Minres/conan-recipes.git
synced 2024-12-25 01:27:22 +01:00
Added SCV packaging
This commit is contained in:
parent
7ea6b9da31
commit
efc00d983f
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.pyc
|
1
SystemC/.gitignore
vendored
Normal file
1
SystemC/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/systemc*
|
14
SystemC/build.py
Normal file
14
SystemC/build.py
Normal file
@ -0,0 +1,14 @@
|
||||
from conan.packager import ConanMultiPackager
|
||||
|
||||
if __name__ == "__main__":
|
||||
builder = ConanMultiPackager()
|
||||
cxxstds = ['98','11','14']
|
||||
archs = ['x86', 'x86_64']
|
||||
types = ['Debug','Release']
|
||||
#configs = [[i,j,k] for i in cxxstds for j in archs for k in types]
|
||||
#for triple in configs:
|
||||
# builder.add(settings={"arch": triple[1], "build_type":triple[2]}, options={"SystemC:stdcxx" : triple[0]}, env_vars={}, build_requires={})
|
||||
configs = [[i,k] for i in cxxstds for k in types]
|
||||
for triple in configs:
|
||||
builder.add(settings={"build_type":triple[1]}, options={"SystemC:stdcxx" : triple[0]}, env_vars={}, build_requires={})
|
||||
builder.run()
|
@ -22,7 +22,7 @@ class SeasocksConan(ConanFile):
|
||||
# self.run("cd SystemCLanguage && git checkout master")
|
||||
|
||||
def build(self):
|
||||
cmake = CMake(self)
|
||||
cmake = CMake(self, parallel=True)
|
||||
cmake.configure(source_dir="%s/systemc-2.3.2" % self.source_folder)
|
||||
shared = "-DBUILD_SHARED_LIBS=ON" if self.options.shared else "-DBUILD_SHARED_LIBS=OFF"
|
||||
self.run('cmake systemc-2.3.2 %s %s -DCMAKE_CXX_STANDARD=%s' % (cmake.command_line, shared, self.options.stdcxx))
|
||||
|
1
SystemCVerification/.gitignore
vendored
Normal file
1
SystemCVerification/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/scv*
|
14
SystemCVerification/build.py
Normal file
14
SystemCVerification/build.py
Normal file
@ -0,0 +1,14 @@
|
||||
from conan.packager import ConanMultiPackager
|
||||
|
||||
if __name__ == "__main__":
|
||||
builder = ConanMultiPackager()
|
||||
cxxstds = ['98','11','14']
|
||||
archs = ['x86', 'x86_64']
|
||||
types = ['Debug','Release']
|
||||
#configs = [[i,j,k] for i in cxxstds for j in archs for k in types]
|
||||
#for triple in configs:
|
||||
# builder.add(settings={"arch": triple[1], "build_type":triple[2]}, options={"SystemCVerification:stdcxx" : triple[0]}, env_vars={}, build_requires={})
|
||||
configs = [[i,k] for i in cxxstds for k in types]
|
||||
for triple in configs:
|
||||
builder.add(settings={"build_type":triple[1]}, options={"SystemCVerification:stdcxx" : triple[0]}, env_vars={}, build_requires={})
|
||||
builder.run()
|
59
SystemCVerification/conanfile.py
Normal file
59
SystemCVerification/conanfile.py
Normal file
@ -0,0 +1,59 @@
|
||||
from conans import ConanFile, tools, AutoToolsBuildEnvironment
|
||||
|
||||
|
||||
class SystemcverificationConan(ConanFile):
|
||||
name = "SystemCVerification"
|
||||
version = "2.0.0a"
|
||||
folder = "scv-2.0.0a-20161019"
|
||||
license = "Apache License 2.0"
|
||||
url = "<Package recipe repository url here, for issues about the package>"
|
||||
description = "<Description of Systemcverification here>"
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
options = {"stdcxx":[98,11,14]}
|
||||
default_options = "stdcxx=98"
|
||||
generators = "txt"
|
||||
exports_sources = "scv-2.0.0a-20161019/*"
|
||||
requires = "SystemC/2.3.2@minres/stable"
|
||||
|
||||
def configure(self):
|
||||
self.options["SystemC"].stdcxx = self.options.stdcxx
|
||||
|
||||
# Maybe in windows we know that OpenSSL works better as shared (false)
|
||||
#if self.settings.os == "Windows":
|
||||
# self.options["OpenSSL"].shared = True
|
||||
|
||||
# Or adjust any other available option
|
||||
# self.options["Poco"].other_option = "foo"
|
||||
|
||||
def build(self):
|
||||
env_build = AutoToolsBuildEnvironment(self)
|
||||
if self.options.stdcxx == "14":
|
||||
env_build.cxx_flags = "-std=c++14"
|
||||
elif self.options.stdcxx == "11":
|
||||
env_build.cxx_flags = "-std=c++11"
|
||||
elif self.options.stdcxx == "98":
|
||||
env_build.cxx_flags = "-std=c++98"
|
||||
#env_build.libs.append("pthread")
|
||||
#env_build.defines.append("NEW_DEFINE=23")
|
||||
|
||||
self.output.info(env_build.vars)
|
||||
with tools.environment_append(env_build.vars):
|
||||
self.run("cd %s && mkdir _build" % self.folder)
|
||||
configure_command = 'cd %s/_build && env && ../configure --prefix=%s/_install --with-systemc=%s --disable-debug --disable-opt'
|
||||
self.output.info(configure_command % (self.folder, self.build_folder, self.deps_cpp_info["SystemC"].rootpath))
|
||||
self.run(configure_command % (self.folder, self.build_folder, self.deps_cpp_info["SystemC"].rootpath))
|
||||
self.run("cd %s/_build && make -j && make install" % self.folder)
|
||||
|
||||
def package(self):
|
||||
# Headers
|
||||
self.copy(pattern="*.h", dst="include", src="_install/include", keep_path=True)
|
||||
# Libs
|
||||
self.copy(pattern="*", dst="lib", src="_install/lib-linux", keep_path=False)
|
||||
self.copy(pattern="*", dst="lib", src="_install/lib-linux64", keep_path=False)
|
||||
self.copy(pattern="*", dst="lib", src="_install/lib-macosx", keep_path=False)
|
||||
self.copy(pattern="*", dst="lib", src="_install/lib-macosx64", keep_path=False)
|
||||
self.copy(pattern="*", dst="lib", src="_install/lib-cygwin", keep_path=False)
|
||||
self.copy(pattern="*", dst="lib", src="_install/lib-mingw", keep_path=False)
|
||||
|
||||
def package_info(self):
|
||||
self.cpp_info.libs = ["scv"]
|
130
SystemCVerification/scv4systemc-2.3.2.patch
Normal file
130
SystemCVerification/scv4systemc-2.3.2.patch
Normal file
@ -0,0 +1,130 @@
|
||||
diff -rupN scv-2.0.0a-20161019/configure scv-2.0.0a-20161019-patched/configure
|
||||
--- scv-2.0.0a-20161019/configure 2016-10-19 23:25:31.000000000 +0200
|
||||
+++ scv-2.0.0a-20161019-patched/configure 2017-10-28 17:00:36.367027496 +0200
|
||||
@@ -16136,7 +16136,7 @@ sparc)
|
||||
case "$GXX" in
|
||||
yes) echo 'setting compiler flags for g++'
|
||||
AM_CXXFLAGS="$SPARC_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$SPARC_GNU_CFLAGS"
|
||||
@@ -16152,8 +16152,8 @@ sparc)
|
||||
echo 'setting library options for g++ on Solaris'
|
||||
;;
|
||||
'') echo 'setting compiler flags for NOT g++'
|
||||
- AM_CXXFLAGS="$SPARC_CC_CXXFLAGS"
|
||||
- CXXFLAGS="$SUN_CC_OPT $SUN_CC_DBG"
|
||||
+ AM_CXXFLAGS="$SPARC_CC_CXXFLAGS"
|
||||
+ CXXFLAGS="$CXXFLAGS $SUN_CC_OPT $SUN_CC_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_SUN_CC_DBG"
|
||||
CXXFLAGS_OPT="$DEF_SUN_CC_OPT"
|
||||
AM_CFLAGS="$SPARC_CC_CFLAGS"
|
||||
@@ -16173,7 +16173,7 @@ hppa*)
|
||||
case "$GXX" in
|
||||
yes) echo 'setting compiler flags for g++'
|
||||
AM_CXXFLAGS="$HPPA_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$HPPA_GNU_CFLAGS"
|
||||
@@ -16192,7 +16192,7 @@ hppa*)
|
||||
;;
|
||||
'') echo 'setting compiler flags and defines for HP aCC'
|
||||
AM_CXXFLAGS="$HPPA_ACC_CXXFLAGS"
|
||||
- CXXFLAGS="$HP_ACC_OPT $HP_ACC_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $HP_ACC_OPT $HP_ACC_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_HP_ACC_DBG"
|
||||
CXXFLAGS_OPT="$DEF_HP_ACC_OPT"
|
||||
AM_CFLAGS="$HPPA_ACC_XFLAGS"
|
||||
@@ -16216,7 +16216,7 @@ powerpc*)
|
||||
case "$GXX" in
|
||||
yes) echo 'setting compiler flags for g++'
|
||||
AM_CXXFLAGS="$LINUX_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$LINUX_GNU_CFLAGS"
|
||||
@@ -16235,7 +16235,7 @@ powerpc*)
|
||||
;;
|
||||
'') echo 'setting compiler flags for NOT g++'
|
||||
AM_CXXFLAGS="$LINUX_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$LINUX_GNU_CFLAGS"
|
||||
@@ -16256,7 +16256,7 @@ i[3456]86*)
|
||||
case "$GXX" in
|
||||
yes) echo 'setting compiler flags for g++'
|
||||
AM_CXXFLAGS="$LINUX_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$LINUX_GNU_CFLAGS"
|
||||
@@ -16275,7 +16275,7 @@ i[3456]86*)
|
||||
;;
|
||||
'') echo 'setting compiler flags for NOT g++'
|
||||
AM_CXXFLAGS="$LINUX_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$LINUX_GNU_CFLAGS"
|
||||
@@ -16296,7 +16296,7 @@ x86_64*)
|
||||
case "$GXX" in
|
||||
yes) echo 'setting compiler flags for g++'
|
||||
AM_CXXFLAGS="$LINUX_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$LINUX_GNU_CFLAGS"
|
||||
@@ -16315,7 +16315,7 @@ x86_64*)
|
||||
;;
|
||||
'') echo 'setting compiler flags for NOT g++'
|
||||
AM_CXXFLAGS="$LINUX_GNU_CXXFLAGS"
|
||||
- CXXFLAGS="$GNU_OPT $GNU_DBG"
|
||||
+ CXXFLAGS="$CXXFLAGS $GNU_OPT $GNU_DBG"
|
||||
CXXFLAGS_DEBUG="$DEF_GNU_DBG"
|
||||
CXXFLAGS_OPT="$DEF_GNU_OPT"
|
||||
AM_CFLAGS="$LINUX_GNU_CFLAGS"
|
||||
diff -rupN scv-2.0.0a-20161019/src/scv/_scv_introspection.h scv-2.0.0a-20161019-patched/src/scv/_scv_introspection.h
|
||||
--- scv-2.0.0a-20161019/src/scv/_scv_introspection.h 2016-10-19 23:25:31.000000000 +0200
|
||||
+++ scv-2.0.0a-20161019-patched/src/scv/_scv_introspection.h 2017-10-28 10:54:04.359018484 +0200
|
||||
@@ -553,7 +553,7 @@ public: \
|
||||
_SCV_MAP(int,length) \
|
||||
_SCV_MAP(int,size) \
|
||||
sc_logic_value_t get_bit(int i) const \
|
||||
- { this->initialize(); return this->_get_instance()->get_bit(i); } \
|
||||
+ { this->initialize(); return sc_logic_value_t(this->_get_instance()->get_bit(i)); } \
|
||||
void set_bit(int i, sc_logic_value_t v) \
|
||||
{ this->initialize(); this->_get_instance()->set_bit(i,v); this->trigger_value_change_cb(); } \
|
||||
unsigned long get_word(int i) const \
|
||||
diff -rupN scv-2.0.0a-20161019/src/scv/scv_random.cpp scv-2.0.0a-20161019-patched/src/scv/scv_random.cpp
|
||||
--- scv-2.0.0a-20161019/src/scv/scv_random.cpp 2016-10-19 23:25:31.000000000 +0200
|
||||
+++ scv-2.0.0a-20161019-patched/src/scv/scv_random.cpp 2017-10-28 10:56:49.880659476 +0200
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
+#include <cstring>
|
||||
|
||||
|
||||
#if ((defined _MSC_VER) || (defined _WIN32))
|
||||
diff -rupN scv-2.0.0a-20161019/src/scv/scv_util.cpp scv-2.0.0a-20161019-patched/src/scv/scv_util.cpp
|
||||
--- scv-2.0.0a-20161019/src/scv/scv_util.cpp 2016-10-19 23:25:31.000000000 +0200
|
||||
+++ scv-2.0.0a-20161019-patched/src/scv/scv_util.cpp 2017-10-28 10:58:02.323613714 +0200
|
||||
@@ -44,7 +44,7 @@
|
||||
#include "scv/scv_util.h"
|
||||
#include "scv/_scv_associative_array.h"
|
||||
#include "scv/scv_report.h"
|
||||
-
|
||||
+#include <cstring>
|
||||
/* ************************************************************************** */
|
||||
|
||||
// For cdsIdent:
|
14
SystemCVerification/test_package/CMakeLists.txt
Normal file
14
SystemCVerification/test_package/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
project(PackageTest CXX)
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
|
||||
conan_basic_setup()
|
||||
|
||||
add_executable(example main.cpp)
|
||||
target_link_libraries(example ${CONAN_LIBS})
|
||||
|
||||
# CTest is a testing tool that can be used to test your project.
|
||||
# enable_testing()
|
||||
# add_test(NAME example
|
||||
# WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
# COMMAND example)
|
24
SystemCVerification/test_package/conanfile.py
Normal file
24
SystemCVerification/test_package/conanfile.py
Normal file
@ -0,0 +1,24 @@
|
||||
from conans import ConanFile, CMake
|
||||
import os
|
||||
|
||||
class SystemcverificationTestConan(ConanFile):
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
generators = "cmake"
|
||||
|
||||
def build(self):
|
||||
cxxstd = self.options["SystemC"].stdcxx
|
||||
cmake = CMake(self)
|
||||
# Current dir is "test_package/build/<build_id>" and CMakeLists.txt is in "test_package"
|
||||
cmake.configure(source_dir=self.conanfile_directory, build_dir="./")
|
||||
#cmake.build()
|
||||
self.run('cmake %s %s -DCMAKE_CXX_STANDARD=%s' % (self.conanfile_directory, cmake.command_line, cxxstd))
|
||||
self.run("cmake --build . %s" % cmake.build_config)
|
||||
|
||||
def imports(self):
|
||||
self.copy("*.dll", dst="bin", src="bin")
|
||||
self.copy("*.dylib*", dst="bin", src="lib")
|
||||
self.copy('*.so*', dst='bin', src='lib')
|
||||
|
||||
def test(self):
|
||||
os.chdir("bin")
|
||||
self.run(".%sexample" % os.sep)
|
29
SystemCVerification/test_package/main.cpp
Normal file
29
SystemCVerification/test_package/main.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
// -*- C++ -*- <this line is for emacs to recognize it as C++ code>
|
||||
/*****************************************************************************
|
||||
|
||||
Licensed to Accellera Systems Initiative Inc. (Accellera)
|
||||
under one or more contributor license agreements. See the
|
||||
NOTICE file distributed with this work for additional
|
||||
information regarding copyright ownership. Accellera licenses
|
||||
this file to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
*****************************************************************************/
|
||||
#include "scv.h"
|
||||
|
||||
int sc_main(int argc, char** argv) {
|
||||
scv_smart_ptr<int> addr("addr");
|
||||
scv_random::set_global_seed(100);
|
||||
cout << "Success!" << endl;
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user