scide: MainWindow - introduce session switch dialog
[supercollider.git] / editors / sc-ide / CMakeLists.txt
blobad1a811a33f5dfe97ad8da864abdbd8c03121a1e
1 cmake_minimum_required( VERSION 2.8 )
3 find_package(Qt4 REQUIRED)
5 if(${CMAKE_COMPILER_IS_GNUCXX})
6     add_definitions(-Wreorder)
7 endif()
9 if (APPLE)
10   include (${CMAKE_SOURCE_DIR}/cmake_modules/MacAppFolder.cmake)
11   set(ide_name ${scappbundlename})
12 else()
13   set(ide_name scide)
14 endif()
16 set ( ide_moc_hdr
17     core/main.hpp
18     core/sig_mux.hpp
19     core/sc_process.hpp
20     core/sc_server.hpp
21     core/doc_manager.hpp
22     core/settings/manager.hpp
23     core/session_manager.hpp
24     widgets/cmd_line.hpp
25     widgets/doc_list.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
37     widgets/tool_box.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)
56 set ( ide_src
57     core/main.cpp
58     core/sig_mux.cpp
59     core/doc_manager.cpp
60     core/sc_process.cpp
61     core/sc_server.cpp
62     core/sc_introspection.cpp
63     core/settings/serialization.cpp
64     core/settings/manager.cpp
65     core/session_manager.cpp
66     widgets/cmd_line.cpp
67     widgets/doc_list.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
91 set( ide_forms
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
99 # Translation files
100 SET( translations
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
116 list(APPEND ide_src
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)
124 if(APPLE)
125         list(APPEND ide_src ${CMAKE_SOURCE_DIR}/common/SC_StandAloneInfo_Darwin.cpp)
126 elseif(WIN32)
127     list(APPEND ide_src ${CMAKE_SOURCE_DIR}/common/SC_Win32Utils.cpp)
128 endif()
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})
151 if(FINAL_BUILD)
152   CREATE_FINAL_FILE(scide_final.cpp ${ide_sources})
153   add_executable( ${ide_name} MACOSX_BUNDLE scide_final.cpp ${ide_rc_sources} )
154 else()
155   add_executable( ${ide_name} MACOSX_BUNDLE ${ide_sources} ${ide_rc_sources} )
156 endif()
159 target_link_libraries( ${ide_name} ${QT_LIBRARIES} ${QT_QTNETWORK_LIBRARY} yaml)
161 if(APPLE)
162         target_link_libraries( ${ide_name} "-framework CoreServices")
163 elseif(WIN32)
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 )
168 endif()
170 if(PTHREADS_FOUND)
171     target_link_libraries(${ide_name} ${PTHREADS_LIBRARIES})
172 endif()
174 if(LTO)
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")
180 endif()
183 # Installation
185 if(APPLE)
186     if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
187         set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/Install" CACHE PATH "Install path prefix" FORCE)
188     endif()
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}
197         )
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)
207     include(DeployQt4)
208     install_qt4_executable("${scappbundlename}/${scappbundlename}.app" "" "" "${CMAKE_BINARY_DIR}/server/scsynth;${CMAKE_BINARY_DIR}/external_libraries")
210 elseif(WIN32)
211         install(TARGETS ${ide_name}
212                         DESTINATION "SuperCollider"
213                         PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
214 else()
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)
218 endif()
220 if (LINUX)
221    install( PROGRAMS SuperColliderIDE.desktop  DESTINATION "share/applications")
222 endif()