1 cmake_minimum_required( VERSION 2.8 )
3 find_package(Qt4 REQUIRED)
5 if(${CMAKE_COMPILER_IS_GNUCXX})
6 add_definitions(-Wreorder)
10 include (${CMAKE_SOURCE_DIR}/cmake_modules/MacAppFolder.cmake)
11 set(ide_name ${scappbundlename})
22 core/settings/manager.hpp
23 core/session_manager.hpp
26 widgets/documents_dialog.hpp
27 widgets/editor_box.hpp
28 widgets/find_replace_tool.hpp
29 widgets/goto_line_tool.hpp
30 widgets/lookup_dialog.hpp
31 widgets/main_window.hpp
32 widgets/multi_editor.hpp
33 widgets/popup_text_input.hpp
34 widgets/post_window.hpp
35 widgets/session_switch_dialog.hpp
36 widgets/sessions_dialog.hpp
38 widgets/code_editor/editor.hpp
39 widgets/code_editor/highlighter.hpp
40 widgets/code_editor/overlay.hpp
41 widgets/code_editor/autocompleter.hpp
42 widgets/settings/dialog.hpp
43 widgets/settings/general_page.hpp
44 widgets/settings/sclang_page.hpp
45 widgets/settings/editor_page.hpp
46 widgets/settings/shortcuts_page.hpp
47 widgets/util/path_chooser_widget.hpp
48 widgets/util/text_format_list_widget.hpp
49 widgets/util/key_sequence_edit.hpp
50 widgets/util/popup_widget.hpp
51 widgets/util/color_widget.hpp
54 file (GLOB_RECURSE all_hdr *hpp)
62 core/sc_introspection.cpp
63 core/settings/serialization.cpp
64 core/settings/manager.cpp
65 core/session_manager.cpp
68 widgets/documents_dialog.cpp
69 widgets/editor_box.cpp
70 widgets/find_replace_tool.cpp
71 widgets/lookup_dialog.cpp
72 widgets/main_window.cpp
73 widgets/multi_editor.cpp
74 widgets/post_window.cpp
75 widgets/session_switch_dialog.cpp
76 widgets/code_editor/editor.cpp
77 widgets/code_editor/highlighter.cpp
78 widgets/code_editor/overlay.cpp
79 widgets/code_editor/autocompleter.cpp
80 widgets/settings/dialog.cpp
81 widgets/settings/general_page.cpp
82 widgets/settings/sclang_page.cpp
83 widgets/settings/editor_page.cpp
84 widgets/settings/shortcuts_page.cpp
85 widgets/util/text_format_list_widget.cpp
86 widgets/util/popup_widget.cpp
88 ${CMAKE_SOURCE_DIR}/common/SC_TextUtils.cpp
92 forms/settings_dialog.ui
93 forms/settings_general.ui
94 forms/settings_sclang.ui
95 forms/settings_editor.ui
96 forms/settings_shortcuts.ui
101 translations/scide_de.ts
102 translations/scide_es.ts
103 translations/scide_fr.ts
104 translations/scide_ja.ts
105 translations/scide_pt.ts
106 translations/scide_ru.ts
107 translations/scide_sl.ts
108 translations/scide_sv.ts
109 translations/scide_zh.ts
112 # QtCollider shared sources:
113 list(APPEND ide_moc_hdr
114 ${CMAKE_SOURCE_DIR}/QtCollider/layouts/stack_layout.hpp
117 ${CMAKE_SOURCE_DIR}/QtCollider/layouts/stack_layout.cpp
120 QT4_ADD_TRANSLATION( translations_src ${translations} )
122 list(APPEND ide_src ${CMAKE_SOURCE_DIR}/common/SC_DirUtils.cpp)
125 list(APPEND ide_src ${CMAKE_SOURCE_DIR}/common/SC_StandAloneInfo_Darwin.cpp)
127 list(APPEND ide_src ${CMAKE_SOURCE_DIR}/common/SC_Win32Utils.cpp)
130 include_directories(${CMAKE_SOURCE_DIR}/include/common)
131 include_directories(${CMAKE_SOURCE_DIR}/include/plugin_interface)
132 include_directories(${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp-0.3.0/include)
133 include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost)
134 # For QtCollider headers:
135 include_directories(${CMAKE_SOURCE_DIR})
136 # Needed for auto-generated forms headers:
137 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/widgets/util)
138 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/widgets)
139 include_directories(${CMAKE_CURRENT_BINARY_DIR})
141 include( ${QT_USE_FILE} )
143 qt4_wrap_cpp( ide_moc_src ${ide_moc_hdr} )
144 qt4_wrap_ui( ide_forms_src ${ide_forms} )
145 qt4_add_resources( ide_rcc resources.qrc )
147 set(ide_sources ${ide_src} ${all_hdr} )
149 set(ide_rc_sources ${ide_moc_src} ${ide_forms_src} ${ide_rcc} ${translations_src})
152 CREATE_FINAL_FILE(scide_final.cpp ${ide_sources})
153 add_executable( ${ide_name} MACOSX_BUNDLE scide_final.cpp ${ide_rc_sources} )
155 add_executable( ${ide_name} MACOSX_BUNDLE ${ide_sources} ${ide_rc_sources} )
159 target_link_libraries( ${ide_name} ${QT_LIBRARIES} ${QT_QTNETWORK_LIBRARY} yaml)
162 target_link_libraries( ${ide_name} "-framework CoreServices")
164 target_link_libraries( ${ide_name} wsock32 )
165 # The following prevents a Windows console from showing up
166 # when the executable is started:
167 set_target_properties( ${ide_name} PROPERTIES WIN32_EXECUTABLE TRUE )
171 target_link_libraries(${ide_name} ${PTHREADS_LIBRARIES})
175 set_property(TARGET ${ide_name}
176 APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report")
178 set_property(TARGET ${ide_name}
179 APPEND PROPERTY LINK_FLAGS "-flto -flto-report -fwhole-program")
186 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
187 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/Install" CACHE PATH "Install path prefix" FORCE)
190 # set how it shows up in the Info.plist file
191 SET(MACOSX_BUNDLE_ICON_FILE ../../platform/mac/SCcube.icns)
193 install(DIRECTORY ../../platform/mac/Resources/ DESTINATION ${scappauxresourcesdir})
195 install(TARGETS ${ide_name}
196 DESTINATION ${scappbundlename}
199 # for processing into the plist:
200 set_property(TARGET ${ide_name}
201 PROPERTY MACOSX_BUNDLE_BUNDLE_NAME ${scappbundlename})
203 set(MACOSX_BUNDLE_BUNDLE_NAME "${scappbundlename}")
205 include(InstallRequiredSystemLibraries)
208 install_qt4_executable("${scappbundlename}/${scappbundlename}.app" "" "" "${CMAKE_BINARY_DIR}/server/scsynth;${CMAKE_BINARY_DIR}/external_libraries")
211 install(TARGETS ${ide_name}
212 DESTINATION "SuperCollider"
213 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
215 install(TARGETS ${ide_name}
216 RUNTIME DESTINATION "bin"
217 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
221 install( PROGRAMS SuperColliderIDE.desktop DESTINATION "share/applications")