summaryrefslogtreecommitdiff
path: root/python-newconan.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-18 04:55:13 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-18 04:55:13 +0000
commitba5dcd05180b90fce5e8c7eb9670eb24451e856a (patch)
tree8b51d383f32810b8abd6ba6fb7b9ca01b6fc9944 /python-newconan.spec
parent418f0379862de675054c3ac4fab20fb5f08e26eb (diff)
automatic import of python-newconan
Diffstat (limited to 'python-newconan.spec')
-rw-r--r--python-newconan.spec313
1 files changed, 313 insertions, 0 deletions
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