한국어
오픈소스포럼
 이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.

CopperSpice는 Qt 프레임워크에서 파생된 C++ 크로스 플랫폼 애플리케이션 개발 라이브러리 집합으로 LGPL V2.1 라이선스 오픈 소스 프로젝트이다. Qt의 기본 설계를 변경하고 순수한 C++ 개발자를 위한 라이브러리 세트로 바꾸는 것을 목표로 시작되었으며 공식적으로 Qt 4.8.2 소스코드에서 포크되어 CopperSpice 1.7.1 기준으로 Qt5.x 초중반까지 기능들은 통합된 것으로 보인다.

지금은 Qt와 완전히 다른 프로젝트로 간주되지만 Qt 의 여러 편리한 기능을 계속 사용할 수 있으면서도 라이센스는 LGPL V2.1 의무사항만 충족하면 된다. (CopperSpice 1.7.1 기준)

GCC, clang 또는 MSVC와 같은 기존 툴체인과 함께 CMake 를 사용하여 빌드할 수 있다. 통합개발환경의 경우 Visual Studio 또는 QtCreator를 개발, 빌드, 테스트 및 배포에 사용할 수 있다.

다음과 같은 주요 라이브러리들이 있다.

CsCore

  • Date/Time, Containers (QVector, QList, QMap, QHash, QStack, etc), File System, JSON, Strings (UTF-8, UTF-16)

CsGui

  • File Dialogs, Menus, Widgets (QCheckbox, QPushbutton, QLineEdit, etc), Printing

CsMultimedia

  • Audio, Video

CsNetwork

  • TCP, HTTP, FTP, IPv6, DNS lookups, SSL, URL support

CsOpenGL

  • Rendering Context, Shader

CsScript

  • 응용프로그램에 JavaScript 엔진 포함.

CsSql

  • SQLite, PostgreSQL, MySQL, etc

CsSvg

  • Renderer, Widget

CsWebKit

  • Web View, Web Page

CsXml

  • DOM, Reader

CsXmlPatterns

  • Schema, Xml Query

다음의 몇가지 독립 실행형 라이브러리들은 BSD 라이선스로 제공된다.

  • CsPaint
  • CsSignal
  • CsString
  • CsLibGuarded

 

 

기본 요구사항

CopperSpice 라이브러리를 사용하려면 C++17 컴파일러와 C++17 표준 라이브러리 및 최신 CMake 가 필요하다. 애플리케이션을 빌드하는 방법에 대한 추가 정보는 CopperSpice 문서 또는 샘플 CMake 프로젝트인 KitchenSink 데모 애플리케이션을 통해 얻을 수 있다.

 

CopperSpice의 특징

  • Meta-Object Compiler는 CopperSpice 에서 메타 데이터를 생성하는 데 더 이상 필요하지 않다.
  • moc는 더 이상 필요하지 않으므로 완전히 제거되었다.
  • 원래 moc에서 제공한 모든 기능은 컴파일 시간 템플릿으로 대체되었다.
  • 템플릿 클래스는 데이터 유형에 대한 제한 없이 QObject에서 상속할 수 있다.
  • 복잡한 데이터 타입도 시그널, 슬롯을 통해 전달 할 수 있다.
  • 모든 컨테이너 클래스를 다시 구현

 

그 밖에 더 많은 특징과 장점들은 아래 링크된 공식 사이트 및 문서를 통해 얻을 수 있다.

https://www.copperspice.com/
https://www.copperspice.com/docs/cs_overview/about-cs.html

저장소는 다음과 같다.

https://github.com/copperspice/copperspice

미리 빌드된 라이브러리를 다운로드 받아 빠르게 시작해 볼 수 있다.

https://download.copperspice.com/copperspice/binary/

데모는 다음 위치에 있다.

https://download.copperspice.com/kitchensink/binary/

 
예제:
CopperSpice 버전으로 포팅한 Network loopback
loopback.png

 

 
files.png

▲ MinGW 로 컴파일 후 패키징 목록. Gui 라이브러리 사이즈가 꽤크다.

번호 제목 글쓴이 날짜 조회 수
35 Wayland IVI Extension 간단 리뷰 file makersweb 2019.05.12 2259
34 GDBus 튜토리얼(GDBus tutorial) file makersweb 2019.06.30 10377
33 텔레그램(Telegram) Bot 개발 file makersweb 2019.07.21 5716
32 리눅스에서 SDL2 최신버전 컴파일과 Qt Creator로 개발환경 구성 file makersweb 2019.10.06 3040
31 webOS소개 및 Raspberry Pi 3 에서 실행 file makersweb 2019.10.13 3884
30 도커(docker)설치 및 기본 명령어 makersweb 2019.12.02 483
29 Pluma(C++ Plug-in Management Framework) 튜토리얼 file makersweb 2019.12.07 14012
28 [SDL2 와 OpenGL]윈도우 생성과 2D그래픽 file makersweb 2020.04.11 3076
27 ZeroMQ의 기본 메세지 패턴들 file makersweb 2020.07.31 8525
26 ZeroMQ 비동기 클라이언트/서버 패턴 file makersweb 2020.08.13 1782
25 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 1142
24 가볍고 쉬운 임베디드용 그래픽 라이브러리 - LVGL file makersweb 2020.09.16 3364
23 윈도우에서 안드로이드 flutter 프로그래밍 개발환경 구축(with Visual Studio Code) file makersweb 2020.09.16 796
22 GENIVI DLT(Diagnostic Log and Trace) 활용 file makersweb 2020.11.19 8398
21 Dear ImGui, 경량의 C++ 용 GUI 및 Widget 라이브러리 file makersweb 2020.11.28 9090
20 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 560
19 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2072
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 682
17 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 867
16 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1720