integrate with cmake