Skip to content

Instantly share code, notes, and snippets.

@kureta
Last active October 2, 2015 15:27
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kureta/b764cb130dafb91375d6 to your computer and use it in GitHub Desktop.
Save kureta/b764cb130dafb91375d6 to your computer and use it in GitHub Desktop.
openFrameworks CLion OS X CMake files
file(GLOB MSA_OPENCL "${OF_DIRECTORY}/addons/ofxMSAOpenCL/src/*.cpp")
set(HEADER_MSA_OPENCL "${OF_DIRECTORY}/addons/ofxMSAOpenCL/src")
file(GLOB OFX_CSV "${OF_DIRECTORY}/addons/ofxCsv/src/*.cpp")
set(HEADER_OFX_CSV "${OF_DIRECTORY}/addons/ofxCsv/src")
set(ADDON_SOURCE_FILES ${MSA_OPENCL} ${OFX_CSV})
set(OF_ADDON_HEADERS ${HEADER_MSA_OPENCL} ${HEADER_OFX_CSV})
find_library(opencl_lib OpenCL)
set(OF_ADDON_FRAMEWORKS
${opencl_lib})
cmake_minimum_required(VERSION 2.8.4)
cmake_policy(SET CMP0042 NEW)
project(emptyExample)
set(APP_NAME emptyExample)
set(BUNDLE_NAME "emptyExample")
# ===================== oF Directory =====================
set(OF_DIRECTORY "!!!!!!!!!!! ENTER YOUT OPENFRAMEWORKS DIRECTORY !!!!!!!!!!!")
# ========================================================
# ===================== Compiler Flags =====================
set(CMAKE_C_COMPILER "/usr/bin/clang")
set(CMAKE_C_FLAGS "")
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
set(CMAKE_CXX_FLAGS "-stdlib=libstdc++ -D__MACOSX_CORE__")
set(CMAKE_OSX_ARCHITECTURES i386)
add_compile_options(-Wno-deprecated-declarations)
# ==========================================================
# ===================== Source Files =====================
set(SOURCE_FILES
src/main.cpp
src/ofApp.cpp
src/fcurves/curveGenerator.cpp
src/fcurves/displayManager.cpp
src/fcurves/dataLoader.cpp)
# ========================================================
# =========== Set Global Properties ==============
include(addons.cmake)
include(openFrameworks.cmake)
# ================================================
# ===================== System Frameworks =====================
# =============================================================
# ===================== Include Dirs =====================
# ========================================================
# ===================== Libs =====================
# ================================================
# ============ Compile and Link ==================
add_executable(${APP_NAME} MACOSX_BUNDLE ${SOURCE_FILES} resources/icon-debug.icns)
add_dependencies(${APP_NAME} of_shared)
target_link_libraries(${APP_NAME} $<TARGET_FILE:of_shared>)
# ================================================
# ============ MACOSX_BUNDLE Settings ============
set_source_files_properties( # Copy app icon
resources/icon-debug.icns
PROPERTIES
MACOSX_PACKAGE_LOCATION Resources
)
ADD_CUSTOM_COMMAND(TARGET ${APP_NAME}
POST_BUILD
COMMAND ${CMAKE_INSTALL_NAME_TOOL}
ARGS -change "@rpath/libopenFrameworks.dylib" "@loader_path/../Frameworks/libopenFrameworks.dylib" $<TARGET_FILE:${APP_NAME}>
)
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_INFO_STRING "Cmake openFrameworks CLion test app")
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_ICON_FILE icon-debug.icns)
# set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER)
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_LONG_VERSION_STRING "0.0.1 pre-release alpha")
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME ${BUNDLE_NAME})
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING 0.0.1)
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION 0.0.1)
set_target_properties(${APP_NAME} PROPERTIES MACOSX_BUNDLE_COPYRIGHT "(c) kureta 2015")
set_target_properties(${APP_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
# ================================================
# ===================== Source Files =====================
set(OF_SOURCE_FILES
${OF_DIRECTORY}/libs/openFrameworks/ofMain.h
${OF_DIRECTORY}/libs/openFrameworks/3d/of3dPrimitives.cpp
${OF_DIRECTORY}/libs/openFrameworks/3d/of3dUtils.cpp
${OF_DIRECTORY}/libs/openFrameworks/3d/ofCamera.cpp
${OF_DIRECTORY}/libs/openFrameworks/3d/ofEasyCam.cpp
${OF_DIRECTORY}/libs/openFrameworks/3d/ofMesh.cpp
${OF_DIRECTORY}/libs/openFrameworks/3d/ofNode.cpp
${OF_DIRECTORY}/libs/openFrameworks/app/ofAppGLFWWindow.cpp
${OF_DIRECTORY}/libs/openFrameworks/app/ofAppGlutWindow.cpp
${OF_DIRECTORY}/libs/openFrameworks/app/ofAppNoWindow.cpp
${OF_DIRECTORY}/libs/openFrameworks/app/ofAppRunner.cpp
${OF_DIRECTORY}/libs/openFrameworks/communication/ofArduino.cpp
${OF_DIRECTORY}/libs/openFrameworks/communication/ofSerial.cpp
${OF_DIRECTORY}/libs/openFrameworks/events/ofEvents.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofFbo.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofGLProgrammableRenderer.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofGLRenderer.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofGLUtils.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofLight.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofMaterial.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofShader.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofTexture.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofVbo.cpp
${OF_DIRECTORY}/libs/openFrameworks/gl/ofVboMesh.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/of3dGraphics.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofBitmapFont.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofCairoRenderer.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofGraphics.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofImage.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofPath.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofPixels.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofPolyline.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofRendererCollection.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofTessellator.cpp
${OF_DIRECTORY}/libs/openFrameworks/graphics/ofTrueTypeFont.cpp
${OF_DIRECTORY}/libs/openFrameworks/math/ofMath.cpp
${OF_DIRECTORY}/libs/openFrameworks/math/ofMatrix3x3.cpp
${OF_DIRECTORY}/libs/openFrameworks/math/ofMatrix4x4.cpp
${OF_DIRECTORY}/libs/openFrameworks/math/ofQuaternion.cpp
${OF_DIRECTORY}/libs/openFrameworks/math/ofVec2f.cpp
${OF_DIRECTORY}/libs/openFrameworks/math/ofVec4f.cpp
${OF_DIRECTORY}/libs/openFrameworks/sound/ofFmodSoundPlayer.cpp
${OF_DIRECTORY}/libs/openFrameworks/sound/ofOpenALSoundPlayer.cpp
${OF_DIRECTORY}/libs/openFrameworks/sound/ofRtAudioSoundStream.cpp
${OF_DIRECTORY}/libs/openFrameworks/sound/ofSoundPlayer.cpp
${OF_DIRECTORY}/libs/openFrameworks/sound/ofSoundStream.cpp
${OF_DIRECTORY}/libs/openFrameworks/types/ofBaseTypes.cpp
${OF_DIRECTORY}/libs/openFrameworks/types/ofColor.cpp
${OF_DIRECTORY}/libs/openFrameworks/types/ofParameter.cpp
${OF_DIRECTORY}/libs/openFrameworks/types/ofParameterGroup.cpp
${OF_DIRECTORY}/libs/openFrameworks/types/ofRectangle.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofFileUtils.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofLog.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofMatrixStack.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofSystemUtils.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofThread.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofURLFileLoader.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofUtils.cpp
${OF_DIRECTORY}/libs/openFrameworks/utils/ofXml.cpp
${OF_DIRECTORY}/libs/openFrameworks/video/ofQTKitGrabber.mm
${OF_DIRECTORY}/libs/openFrameworks/video/ofQTKitMovieRenderer.m
${OF_DIRECTORY}/libs/openFrameworks/video/ofQTKitPlayer.mm
${OF_DIRECTORY}/libs/openFrameworks/video/ofQtUtils.cpp
${OF_DIRECTORY}/libs/openFrameworks/video/ofQuickTimeGrabber.cpp
${OF_DIRECTORY}/libs/openFrameworks/video/ofQuickTimePlayer.cpp
${OF_DIRECTORY}/libs/openFrameworks/video/ofVideoGrabber.cpp
${OF_DIRECTORY}/libs/openFrameworks/video/ofVideoPlayer.cpp)
# ========================================================
# ===================== Include Dirs =====================
set(HEADER_OF_0 ${OF_DIRECTORY}/libs/openFrameworks)
set(HEADER_OF_1 ${OF_DIRECTORY}/libs/openFrameworks/3d)
set(HEADER_OF_2 ${OF_DIRECTORY}/libs/openFrameworks/app)
set(HEADER_OF_3 ${OF_DIRECTORY}/libs/openFrameworks/communication)
set(HEADER_OF_4 ${OF_DIRECTORY}/libs/openFrameworks/events)
set(HEADER_OF_5 ${OF_DIRECTORY}/libs/openFrameworks/gl)
set(HEADER_OF_6 ${OF_DIRECTORY}/libs/openFrameworks/graphics)
set(HEADER_OF_7 ${OF_DIRECTORY}/libs/openFrameworks/math)
set(HEADER_OF_8 ${OF_DIRECTORY}/libs/openFrameworks/sound)
set(HEADER_OF_9 ${OF_DIRECTORY}/libs/openFrameworks/types)
set(HEADER_OF_10 ${OF_DIRECTORY}/libs/openFrameworks/utils)
set(HEADER_OF_11 ${OF_DIRECTORY}/libs/openFrameworks/video)
set(HEADER_FREETYPE ${OF_DIRECTORY}/libs/freetype/include)
set(HEADER_FREETYPE2 ${OF_DIRECTORY}/libs/freetype/include/freetype2)
set(HEADER_POCO ${OF_DIRECTORY}/libs/poco/include)
set(HEADER_FMODEX ${OF_DIRECTORY}/libs/fmodex/include)
set(HEADER_GLEW ${OF_DIRECTORY}/libs/glew/include)
set(HEADER_FREEIMAGE ${OF_DIRECTORY}/libs/FreeImage/include)
set(HEADER_TESS2 ${OF_DIRECTORY}/libs/tess2/include)
set(HEADER_CAIRO ${OF_DIRECTORY}/libs/cairo/include/cairo)
set(HEADER_RTAUDIO ${OF_DIRECTORY}/libs/rtAudio/include)
set(HEADER_GLFW ${OF_DIRECTORY}/libs/glfw/include)
set(OF_CORE_HEADERS ${HEADER_OF_0} ${HEADER_OF_1} ${HEADER_OF_2} ${HEADER_OF_3} ${HEADER_OF_4} ${HEADER_OF_5} ${HEADER_OF_6} ${HEADER_OF_7} ${HEADER_OF_8} ${HEADER_OF_9} ${HEADER_OF_10} ${HEADER_OF_11} ${HEADER_POCO} ${HEADER_FREETYPE} ${HEADER_FREETYPE2} ${HEADER_FMODEX} ${HEADER_GLEW} ${HEADER_FREEIMAGE} ${HEADER_TESS2} ${HEADER_CAIRO} ${HEADER_RTAUDIO} ${HEADER_GLFW})
# ========================================================
# ===================== Libs =====================
set(LIB_FMODEX ${OF_DIRECTORY}/libs/fmodex/lib/osx/libfmodex.dylib)
set(LIB_GLFW ${OF_DIRECTORY}/libs/glfw/lib/osx/libglfw3.a)
set(LIB_FREEIMAGE ${OF_DIRECTORY}/libs/FreeImage/lib/osx/freeimage.a)
set(LIB_FREETYPE ${OF_DIRECTORY}/libs/freetype/lib/osx/freetype.a)
set(LIB_GLEW ${OF_DIRECTORY}/libs/glew/lib/osx/glew.a)
set(LIB_POCO_1 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoCrypto.a)
set(LIB_POCO_2 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoData.a)
set(LIB_POCO_3 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoDataODBC.a)
set(LIB_POCO_4 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoDataSQLite.a)
set(LIB_POCO_5 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoFoundation.a)
set(LIB_POCO_6 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoNet.a)
set(LIB_POCO_7 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoNetSSL.a)
set(LIB_POCO_8 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoUtil.a)
set(LIB_POCO_9 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoXML.a)
set(LIB_POCO_10 ${OF_DIRECTORY}/libs/poco/lib/osx/PocoZip.a)
set(LIB_RTAUDIO ${OF_DIRECTORY}/libs/rtAudio/lib/osx/rtAudio.a)
set(LIB_TESS ${OF_DIRECTORY}/libs/tess2/lib/osx/tess2.a)
set(LIB_CAIRO1 ${OF_DIRECTORY}/libs/cairo/lib/osx/cairo-script-interpreter.a)
set(LIB_CAIRO2 ${OF_DIRECTORY}/libs/cairo/lib/osx/cairo.a)
set(LIB_CAIRO3 ${OF_DIRECTORY}/libs/cairo/lib/osx/pixman-1.a)
set(LIB_OPENSSL1 ${OF_DIRECTORY}/libs/openssl/lib/osx/crypto.a)
set(LIB_OPENSSL2 ${OF_DIRECTORY}/libs/openssl/lib/osx/ssl.a)
set(OF_CORE_LIBS ${LIB_POCO_1} ${LIB_POCO_2} ${LIB_POCO_3} ${LIB_POCO_4} ${LIB_POCO_5} ${LIB_POCO_6} ${LIB_POCO_7} ${LIB_POCO_8} ${LIB_POCO_9} ${LIB_POCO_10} ${LIB_TESS} ${LIB_GLEW} ${LIB_CAIRO1} ${LIB_CAIRO2} ${LIB_CAIRO3} ${LIB_FMODEX} ${LIB_RTAUDIO} ${LIB_OPENSSL1} ${LIB_OPENSSL2} ${LIB_GLFW} ${LIB_FREEIMAGE} ${LIB_FREETYPE})
# ================================================
# ===================== System Frameworks =====================
set(FRAMEWORKS_DIR /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks)
find_library(accelerate_lib Accelerate)
find_library(iokit_lib IOKit)
find_library(agl_lib AGL)
find_library(applicationservices_lib ApplicationServices)
find_library(audiotoolbox_lib AudioToolbox)
find_library(coreaudio_lib CoreAudio)
find_library(corefoundation_lib CoreFoundation)
find_library(coreservices_lib CoreServices)
find_library(opengl_lib OpenGL)
find_library(quicktime_lib QuickTime)
find_library(corevideo_lib CoreVideo)
find_library(qtkit_lib QTKit)
find_library(cocoa_lib Cocoa)
find_library(glut_lib GLUT)
set(OF_CORE_FRAMEWORKS
${accelerate_lib}
${iokit_lib}
${agl_lib}
${applicationservices_lib}
${audiotoolbox_lib}
${coreaudio_lib}
${corefoundation_lib}
${coreservices_lib}
${opengl_lib}
${quicktime_lib}
${corevideo_lib}
${qtkit_lib}
${cocoa_lib}
${glut_lib})
# =============================================================
set(OF_SOURCE_FILES ${OF_SOURCE_FILES} ${ADDON_SOURCE_FILES})
include_directories(${OF_CORE_HEADERS} ${OF_ADDON_HEADERS})
set_source_files_properties(${OF_SOURCE_FILES} PROPERTIES COMPILE_FLAGS "-stdlib=libstdc++ -x objective-c++")
add_library(core OBJECT ${OF_SOURCE_FILES})
add_library(static STATIC $<TARGET_OBJECTS:core>)
set_target_properties(static PROPERTIES LINK_FLAGS "-stdlib=libstdc++ -arch i386 -F'${OF_DIRECTORY}/libs/glut/lib/osx/' -F${FRAMEWORKS_DIR}")
set_target_properties(static PROPERTIES OUTPUT_NAME openFrameworks)
target_link_libraries(static ${OF_CORE_FRAMEWORKS} ${OF_ADDON_FRAMEWORKS} ${OF_CORE_LIBS})
add_library(of_shared SHARED $<TARGET_OBJECTS:core>)
set_target_properties(of_shared PROPERTIES LINK_FLAGS "-stdlib=libstdc++ -arch i386 -F'${OF_DIRECTORY}/libs/glut/lib/osx/' -F${FRAMEWORKS_DIR}")
set_target_properties(of_shared PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/${APP_NAME}.app/Contents/Frameworks)
set_target_properties(of_shared PROPERTIES OUTPUT_NAME openFrameworks)
target_link_libraries(of_shared ${OF_CORE_FRAMEWORKS} ${OF_ADDON_FRAMEWORKS} ${OF_CORE_LIBS})
ADD_CUSTOM_COMMAND(TARGET of_shared
POST_BUILD
COMMAND ${CMAKE_INSTALL_NAME_TOOL}
ARGS -change ./libfmodex.dylib "@loader_path/libfmodex.dylib" $<TARGET_FILE:of_shared>
)
ADD_CUSTOM_COMMAND(TARGET of_shared
POST_BUILD
COMMAND /bin/cp
ARGS ${LIB_FMODEX} ${PROJECT_SOURCE_DIR}/bin/${APP_NAME}.app/Contents/Frameworks
)
ADD_CUSTOM_COMMAND( # Copy oF's GLUT.framework
TARGET of_shared
POST_BUILD
COMMAND /usr/bin/python
ARGS ${PROJECT_SOURCE_DIR}/utils/copyFrameworks.py
--app ${PROJECT_SOURCE_DIR}/bin/${APP_NAME}.app
--framework ${glut_lib}
)
@judepereira
Copy link

This seems to be missing - copyFrameworks.py

@judepereira
Copy link

I've pieced it together for beginners here: https://github.com/judepereira/44a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment