%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. ## 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. ## 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. ## 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 - 2.6-1 - Package Spec generated