# como
**Repository Path**: digitzh/como
## Basic Information
- **Project Name**: como
- **Description**: C++ Component Model
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 10
- **Created**: 2024-03-15
- **Last Updated**: 2024-03-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# COMO
COMO is a C++ Component Model. It can:
1. support interface-oriented programming;
2. support C++ runtime reflection;
**cdlc** is the .cdl compiler.
**comort** is the como component runtime.
**libcore** is the core library.
### Install build-essential
###### openEuler
```shell
sudo yum groupinstall 'Development Tools'
```
###### Ubuntu
```shell
sudo apt install build-essential
```
### Install cmake
###### openEuler
```shell
sudo yum install cmake
```
###### Ubuntu
```shell
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake
```
### Install DBus
###### openEuler
```shell
安装dbus
sudo yum install dbus-devel
查找dbus.h位置
$ sudo locate dbus.h
如果提示错误,执行 $ sudo updatedb
/usr/local/include/dbus-1.0/dbus/dbus.h
/usr/include/dbus-1.0/dbus/dbus.h
dbus默认安装到了dbus-1.0位置,需要调整dbus头文件位置,调整方法如下:
$cd /usr/include
$ ln -sf dbus-1.0/dbus
出现错误dbus/dbus-arch-deps.h:No such file or directory
查找该文件
$ locate dbus-arch-deps.h
/usr/local/lib/dbus-1.0/include/dbus/dbus-arch-deps.h
/usr/lib/dbus-1.0/include/dbus/dbus-arch-deps.h
将/usr/lib/dbus-1.0/include/dbus/dbus-arch-deps.h文件复制到/usr/include/dbus目录下
```
###### Ubuntu
```shell
sudo apt-get update
sudo apt-get install libdbus-1-dev
```
### Install Unwind
###### openEuler
```shell
wget http://mirror.yongbok.net/nongnu/libunwind/libunwind-1.5.0.tar.gz
tar zxvf libunwind-1.5.0.tar.gz
cd libunwind-1.5.0/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
```
###### Ubuntu
```shell
sudo apt-get install libunwind8-dev
```
### Install ICU
###### openEuler
```shell
sudo yum install libicu-devel
安装 icu4c 最新版
wget https://github.com/unicode-org/icu/releases/download/release-68-2/icu4c-68_2-src.tgz
tar -xf icu4c-68_2-src.tgz
cd icu/source
./configure --prefix=/usr
gmake
gmake install
```
###### Ubuntu
```shell
sudo apt-get install libicu-dev
```
### Install autoreconf libtool
###### Ubuntu
```shell
sudo apt-get install autoreconf
sudo apt-get install libtool
```
### How to build
1. cd como
2. source build/envsetup.sh
**You will get these commands:**
```shell
$ help
- comotools: Switch to build como tools.
- como_linux_x64: Switch to build como for linux x64.
- como_android_aarch64: Switch to build como for android aarch64.
- debug: Switch to build debug version.
- release: Switch to build release version.
- build: Build source codes.
- build install: Build source codes and install the building results.
- rebuild: Rebuild source codes.
- rebuild install: Rebuild source codes and install the building results.
- clobber: Clean the building results and generated files of the current project.
- clobber all: Clean all of the building results and generated files.
```
3. choose build target:
+ comotools
to build tools
+ como_linux_x64
to build como for linux x64
+ como_android_aarch64
to build como for android aarch64
4. build
or build -j*n*
for release build
### Change build type
1. in any build target:
+ debug
for debug build
+ release
for release build
### Rebuild
1. rebuild
or rebuild -j*n*
### Clobber
1. clobber
### Copy building results
if the build target is android aarch64, you need copy building results to the device.
+ drop
or drop all
to copy all modules
+ drop core
to copy core modules
+ drop test
to copy testcase modules
### Other commands
+ root
to change to como root directory
+ out
to change to out directory
+ bin
to change to bin directory
-------------------------------------
# build external/ directory
build external with program:
```shell
./MakeOptionalExternal.sh
```
It needs python interpreator in your PATH environment.