Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
legerch committed Jan 10, 2022
2 parents 99fab46 + 6329fa7 commit b7ef29e
Show file tree
Hide file tree
Showing 9 changed files with 913 additions and 1 deletion.
77 changes: 77 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Globals
build/
build_debug/
build_release/
.DS_Store

# Prerequisites
*.d

# Compiled object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Fortran module files
*.mod
*.smod

# Executables
*.exe
*.out
*.app

# Generated documentation
html

# User configuration
*.user

# Qt relative
object_script.*.Release
object_script.*.Debug
*_plugin_import.cpp
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
*.qmlc
*.jsc
*build-*
*.qm
*.prl

# Qt unit tests
target_wrapper.*

# QtCreator
*.autosave

# QtCreator Qml
*.qmlproject.user
*.qmlproject.user.*

# QtCreator 4.8< compilation database
compile_commands.json

# VsCode
.vscode/
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Changelog

All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog] and this project adheres to [Semantic Versioning].

## [next] - 2.1.x

## [2.1.0] - 2022-01-10

Creation of the repository which provides :
- **QCustomPlot** library compliant with _Cmake_ projects (`.pro` file has been replaced by `CMakeLists.txt`)
- Hide _Qt dependencies_, callers no longer needed to add mandatory modules of the library in their own _CMakeLists_ project (like `printsupport` module for example)
- Add a `config.h.in` file in order to know which version of the library we are using from the caller project (multiple macros are defined, like `QCP_LIB_VERSION` for example).

<!-- Links -->
[keep a changelog]: https://keepachangelog.com/en/1.0.0/
[semantic versioning]: https://semver.org/spec/v2.0.0.html

<!-- Versions -->
[next]: /~https://github.com/leger50/QCustomPlot-library/compare/2.1.0...dev
[0.0.2]: /~https://github.com/Author/Repository/compare/v0.0.1...v0.0.2
[2.1.0]: /~https://github.com/leger50/QCustomPlot-library/releases/tag/2.1.0
27 changes: 27 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
cmake_minimum_required(VERSION 3.14)
project(qcustomplotroot LANGUAGES CXX)

# Find architecture property
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(PROJECT_ARCH_TARGET "amd64") # x64
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(PROJECT_ARCH_TARGET "i386") # x86
else()
message(FATAL_ERROR "Unkwnown architecture, CMake will exit.")
endif()

# Defines options of project
# Ex : set(EXT_OPT_QCPLIB_XYZ 0)

# Export generated binaries
if(NOT PROJECT_BUILD_OUTPUT)
set(PROJECT_BUILD_OUTPUT ${CMAKE_SOURCE_DIR}/build/output/${PROJECT_ARCH_TARGET}/${CMAKE_BUILD_TYPE})

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BUILD_OUTPUT}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BUILD_OUTPUT}/lib)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BUILD_OUTPUT}/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BUILD_OUTPUT}/bin)
endif()

# Run subdirectory routine
add_subdirectory(lib)
57 changes: 56 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,56 @@
QCustomPlotLib
**Table of contents :**
- [1. Introduction](#1-introduction)
- [2. Current version](#2-current-version)
- [3. How to use](#3-how-to-use)
- [4. License](#4-license)

# 1. Introduction

This repository allow to use [QCustomPlot][qcp-main] as a shared library compliant with [CMake][cmake] build system.
Besides, this repository also provides _community patches_ available.

# 2. Current version

Official changelog of the library can be found at [official changelog][changelog-official] file.
This repository also provide a [changelog][changelog-repo] in order to track change differencies with the official version.

| Library version | Type of version<br>(**official** or **community**) | Qt compatibility |
| :-: | :-: | :-: |
| [2.1.0][tag-2.1.0] | Official | `Qt 4.6.x` -> `Qt 6.0.0` |

# 3. How to use

This library can be use as an _embedded library_ in a subdirectory of your project (like a _git submodule_ for example) :
1. In the **root** CMakeLists, add instructions :
```cmake
add_subdirectory(QCustomPlot-library) # Or if library is put in a folder "dependencies" : add_subdirectory(dependencies/QCustomPlot-library)
```

2. In the **application/library** CMakeLists, add instructions :
```cmake
# Link needed libraries
# QCustomPlot library
target_link_libraries(${PROJECT_NAME} PRIVATE qcustomplot)
```
> Examples of how to use the library can be found in the associated repository [QCustomPlot-examples][repo-qcp-examples]
# 4. License

[QCustomPlot][qcp-main] is released under [GPL-3.0 License][license], so as this repository.

<!-- Links to QCustomPlot website -->
[qcp-main]: https://www.qcustomplot.com/index.php/introduction
[qcp-doc]: https://www.qcustomplot.com/documentation/index.html

<!-- Links to useful ressources -->
[cmake]: https://cmake.org/

<!-- Links to external repositories -->
[repo-qcp-examples]: /~https://github.com/leger50/QCustomPlot-examples

<!-- Links to this repository -->
[changelog-repo]: /~https://github.com/leger50/QCustomPlot-library/blob/dev/CHANGELOG.md
[changelog-official]: /~https://github.com/leger50/QCustomPlot-library/blob/dev/changelog-official.txt
[license]: /~https://github.com/leger50/QCustomPlot-library/blob/master/LICENSE.md

[tag-2.1.0]: /~https://github.com/leger50/QCustomPlot-library/releases/tag/2.1.0
Loading

0 comments on commit b7ef29e

Please sign in to comment.