@@ -57,6 +57,7 @@ set(HEADERS
5757# Library
5858if (BUILD_SHARED)
5959 add_library (example SHARED ${SOURCES} ${HEADERS} )
60+ target_compile_definitions (example PUBLIC IS_BUILDING_SHARED)
6061 message (STATUS "Building shared version..." )
6162else ()
6263 add_library (example STATIC ${SOURCES} ${HEADERS} )
@@ -69,14 +70,44 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
6970
7071# Executable
7172if (PLATFORM MATCHES "MAC.*" )
72- add_executable (helloworld main.cpp)
73+ set (APP_NAME TestApp)
74+ add_executable (${APP_NAME} MACOSX_BUNDLE main.cpp)
75+ set_target_properties (${APP_NAME} PROPERTIES
76+ BUNDLE True
77+ MACOSX_BUNDLE_GUI_IDENTIFIER leetal.com.helloworld
78+ MACOSX_BUNDLE_BUNDLE_NAME helloworld
79+ MACOSX_BUNDLE_BUNDLE_VERSION "0.1"
80+ MACOSX_BUNDLE_SHORT_VERSION_STRING "0.1"
81+ )
7382 # Link the library with the executable
74- target_link_libraries (helloworld example)
83+ target_link_libraries (${APP_NAME} example)
7584endif ()
7685
7786# Debug symbols set in XCode project
7887set_xcode_property(example GCC_GENERATE_DEBUGGING_SYMBOLS YES "All" )
7988
8089# Installation
81- install (TARGETS example DESTINATION lib)
90+ if (PLATFORM MATCHES "MAC.*" )
91+ install (TARGETS ${APP_NAME}
92+ BUNDLE DESTINATION . COMPONENT Runtime
93+ RUNTIME DESTINATION bin COMPONENT Runtime
94+ LIBRARY DESTINATION lib
95+ ARCHIVE DESTINATION lib/static )
96+
97+ # Note Mac specific extension .app
98+ set (APPS "\$ {CMAKE_INSTALL_PREFIX}/${APP_NAME} .app" )
99+
100+ # Directories to look for dependencies
101+ set (DIRS ${CMAKE_BINARY_DIR} )
102+
103+ install (CODE "include(BundleUtilities)
104+ fixup_bundle(\" ${APPS} \" \"\" \" ${DIRS} \" )" )
105+
106+ set (CPACK_GENERATOR "DRAGNDROP" )
107+ include (CPack)
108+ else ()
109+ install (TARGETS example
110+ LIBRARY DESTINATION lib
111+ ARCHIVE DESTINATION lib/static )
112+ endif ()
82113install (FILES ${HEADERS} DESTINATION include )
0 commit comments