Complete cmake framework