diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-18 04:55:13 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-18 04:55:13 +0000 |
| commit | ba5dcd05180b90fce5e8c7eb9670eb24451e856a (patch) | |
| tree | 8b51d383f32810b8abd6ba6fb7b9ca01b6fc9944 | |
| parent | 418f0379862de675054c3ac4fab20fb5f08e26eb (diff) | |
automatic import of python-newconan
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-newconan.spec | 313 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 315 insertions, 0 deletions
@@ -0,0 +1 @@ +/newconan-2.6.tar.gz diff --git a/python-newconan.spec b/python-newconan.spec new file mode 100644 index 0000000..ecf8315 --- /dev/null +++ b/python-newconan.spec @@ -0,0 +1,313 @@ +%global _empty_manifest_terminate_build 0 +Name: python-newconan +Version: 2.6 +Release: 1 +Summary: New cmake project based on conan +License: MIT +URL: https://github.com/wumo-util/newconan +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/31/86/d4c61671ac9939c47b16d593d4202d8d2b59beecac13321b90ae9dd1465f/newconan-2.6.tar.gz +BuildArch: noarch + +Requires: python3-conan + +%description +`newconan` creates default project structure that is convenient for developing in IDEs like Clion and Visual Studio.<!--more--> + +## Requirements + +`cmake` >= 3.14 + +## Installation +```shell +$ pip install newconan +``` + +## Create Project +```shell +$ newconan TestExe # create exe project +$ newconan TestSharedLibrary -shared # create shared library project +$ newconan TestStaticLibrary -static # create static library project +``` + +## Project Structure + +``` +TestSharedLibrary +├── .git +├── .travis +│ ├── install.sh +│ └── run.sh +├── assets +│ └── public +│ └── TestSharedLibrary +├── cmake +│ ├── conan.cmake +│ ├── symlink.cmake +│ └── symlink.py +├── src +│ ├── main.cpp +│ └── main.h +├── test +│ └── test.cpp +├── .clang-format +├── .gitignore +├── .gitlab-ci.yml +├── .travis.yml +├── appveyor.yml +├── build.py +├── CMakeLists.txt +├── CMakeSettings.json +├── conanfile.py +└── README.md +``` +* `newconan` will automatically create the git repository which is `.git` folder. +* `assets` folder will contains resource files which will be symlink to `${CMAKE_CURRENT_BINARY_DIR}/bin/assets`. In this way, your binary can use the relative path `./assets` to access the resource files. +* `cmake` folder contains some `cmake macros` to symlink folder and setup `conan`. +* `src` folder contains the main source code for your project. +* `test` folder contains all the test `cpp` files. +* `.clang-format` is the default format that `clang-format` will use. +* `.gitignore` ignores everything except exisiting folders and files. You can edit this file to add other folders to git. +* `.gitlab-ci.yml` is the default ci configuration for `gitlab`. +* `.travis.yml` and folder `.travis` is the default ci configuration for `travis`. +* `appveyor.yml` is the default ci configuration for `appveyor`. +* `build.py` will be used by `gitlab-ci` to build and upload this project as `conan recipe` for others to use your library. +* `CMakeLists.txt` will define a target for your project and link all the necessary libraries against it. `CMakeLists.txt` also scans `test` folder and create corresponding a test target for each `cpp` file. +* `CMakeSettings.json` is used by `Visual Studio`. This file will make `Visual Studio` put the `build` folder relative to your project rather than some hashed folder which you can't find easily. +* `conanfile.py` defines the library dependencies. `conan` will download and compile all the required libraries and copy `*.dll/*.dylib` to `${CMAKE_CURRENT_BINARY_DIR}/bin` folder. At the same time, dependent library resource files will also be copied. +* `README.md` shows how to build this project using `cmake` and `conan`. + +## Add dependency +You can add library dependencies to your project by modifying the `requires` attribute of `conanfile.py`: +```python +class ProjectNameConan(ConanFile): + name = "ProjectName" + version = "1.0.0" + settings = "os", "compiler", "build_type", "arch" + requires = ( # Add dependencies here. + "library1/1.0.0@conan/stable", + "library2/2.0.0@conan/testing", + ... + ) +``` +And then refresh `cmake`, `conan` will download and compile all the listed dependencies. + + + +%package -n python3-newconan +Summary: New cmake project based on conan +Provides: python-newconan +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-newconan +`newconan` creates default project structure that is convenient for developing in IDEs like Clion and Visual Studio.<!--more--> + +## Requirements + +`cmake` >= 3.14 + +## Installation +```shell +$ pip install newconan +``` + +## Create Project +```shell +$ newconan TestExe # create exe project +$ newconan TestSharedLibrary -shared # create shared library project +$ newconan TestStaticLibrary -static # create static library project +``` + +## Project Structure + +``` +TestSharedLibrary +├── .git +├── .travis +│ ├── install.sh +│ └── run.sh +├── assets +│ └── public +│ └── TestSharedLibrary +├── cmake +│ ├── conan.cmake +│ ├── symlink.cmake +│ └── symlink.py +├── src +│ ├── main.cpp +│ └── main.h +├── test +│ └── test.cpp +├── .clang-format +├── .gitignore +├── .gitlab-ci.yml +├── .travis.yml +├── appveyor.yml +├── build.py +├── CMakeLists.txt +├── CMakeSettings.json +├── conanfile.py +└── README.md +``` +* `newconan` will automatically create the git repository which is `.git` folder. +* `assets` folder will contains resource files which will be symlink to `${CMAKE_CURRENT_BINARY_DIR}/bin/assets`. In this way, your binary can use the relative path `./assets` to access the resource files. +* `cmake` folder contains some `cmake macros` to symlink folder and setup `conan`. +* `src` folder contains the main source code for your project. +* `test` folder contains all the test `cpp` files. +* `.clang-format` is the default format that `clang-format` will use. +* `.gitignore` ignores everything except exisiting folders and files. You can edit this file to add other folders to git. +* `.gitlab-ci.yml` is the default ci configuration for `gitlab`. +* `.travis.yml` and folder `.travis` is the default ci configuration for `travis`. +* `appveyor.yml` is the default ci configuration for `appveyor`. +* `build.py` will be used by `gitlab-ci` to build and upload this project as `conan recipe` for others to use your library. +* `CMakeLists.txt` will define a target for your project and link all the necessary libraries against it. `CMakeLists.txt` also scans `test` folder and create corresponding a test target for each `cpp` file. +* `CMakeSettings.json` is used by `Visual Studio`. This file will make `Visual Studio` put the `build` folder relative to your project rather than some hashed folder which you can't find easily. +* `conanfile.py` defines the library dependencies. `conan` will download and compile all the required libraries and copy `*.dll/*.dylib` to `${CMAKE_CURRENT_BINARY_DIR}/bin` folder. At the same time, dependent library resource files will also be copied. +* `README.md` shows how to build this project using `cmake` and `conan`. + +## Add dependency +You can add library dependencies to your project by modifying the `requires` attribute of `conanfile.py`: +```python +class ProjectNameConan(ConanFile): + name = "ProjectName" + version = "1.0.0" + settings = "os", "compiler", "build_type", "arch" + requires = ( # Add dependencies here. + "library1/1.0.0@conan/stable", + "library2/2.0.0@conan/testing", + ... + ) +``` +And then refresh `cmake`, `conan` will download and compile all the listed dependencies. + + + +%package help +Summary: Development documents and examples for newconan +Provides: python3-newconan-doc +%description help +`newconan` creates default project structure that is convenient for developing in IDEs like Clion and Visual Studio.<!--more--> + +## Requirements + +`cmake` >= 3.14 + +## Installation +```shell +$ pip install newconan +``` + +## Create Project +```shell +$ newconan TestExe # create exe project +$ newconan TestSharedLibrary -shared # create shared library project +$ newconan TestStaticLibrary -static # create static library project +``` + +## Project Structure + +``` +TestSharedLibrary +├── .git +├── .travis +│ ├── install.sh +│ └── run.sh +├── assets +│ └── public +│ └── TestSharedLibrary +├── cmake +│ ├── conan.cmake +│ ├── symlink.cmake +│ └── symlink.py +├── src +│ ├── main.cpp +│ └── main.h +├── test +│ └── test.cpp +├── .clang-format +├── .gitignore +├── .gitlab-ci.yml +├── .travis.yml +├── appveyor.yml +├── build.py +├── CMakeLists.txt +├── CMakeSettings.json +├── conanfile.py +└── README.md +``` +* `newconan` will automatically create the git repository which is `.git` folder. +* `assets` folder will contains resource files which will be symlink to `${CMAKE_CURRENT_BINARY_DIR}/bin/assets`. In this way, your binary can use the relative path `./assets` to access the resource files. +* `cmake` folder contains some `cmake macros` to symlink folder and setup `conan`. +* `src` folder contains the main source code for your project. +* `test` folder contains all the test `cpp` files. +* `.clang-format` is the default format that `clang-format` will use. +* `.gitignore` ignores everything except exisiting folders and files. You can edit this file to add other folders to git. +* `.gitlab-ci.yml` is the default ci configuration for `gitlab`. +* `.travis.yml` and folder `.travis` is the default ci configuration for `travis`. +* `appveyor.yml` is the default ci configuration for `appveyor`. +* `build.py` will be used by `gitlab-ci` to build and upload this project as `conan recipe` for others to use your library. +* `CMakeLists.txt` will define a target for your project and link all the necessary libraries against it. `CMakeLists.txt` also scans `test` folder and create corresponding a test target for each `cpp` file. +* `CMakeSettings.json` is used by `Visual Studio`. This file will make `Visual Studio` put the `build` folder relative to your project rather than some hashed folder which you can't find easily. +* `conanfile.py` defines the library dependencies. `conan` will download and compile all the required libraries and copy `*.dll/*.dylib` to `${CMAKE_CURRENT_BINARY_DIR}/bin` folder. At the same time, dependent library resource files will also be copied. +* `README.md` shows how to build this project using `cmake` and `conan`. + +## Add dependency +You can add library dependencies to your project by modifying the `requires` attribute of `conanfile.py`: +```python +class ProjectNameConan(ConanFile): + name = "ProjectName" + version = "1.0.0" + settings = "os", "compiler", "build_type", "arch" + requires = ( # Add dependencies here. + "library1/1.0.0@conan/stable", + "library2/2.0.0@conan/testing", + ... + ) +``` +And then refresh `cmake`, `conan` will download and compile all the listed dependencies. + + + +%prep +%autosetup -n newconan-2.6 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-newconan -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 2.6-1 +- Package Spec generated @@ -0,0 +1 @@ +e3572e143146b8f89125ddafaaa4cc65 newconan-2.6.tar.gz |
