OSDN Git Service

68bc58c65f9f1c6ccad85a0d894b8b52c03e79eb
[csp-qt/common_source_project-fm7.git] / source / build-cmake / cmake / config_commonsource.cmake
1 # Set configuration for building XM7/SDL.
2 # (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
3 # This is part of XM7/SDL, but license is apache 2.2,
4 # this part was written only me.
5
6 include(CheckFunctionExists)
7 # Use cmake if enabled.
8 SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
9 SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
10
11
12   FIND_PACKAGE(Qt5Widgets REQUIRED)
13   FIND_PACKAGE(Qt5Core REQUIRED)
14   FIND_PACKAGE(Qt5Gui REQUIRED)
15   FIND_PACKAGE(Qt5OpenGL REQUIRED)
16   include_directories(${Qt5Widgets_INCLUDE_DIRS})
17   include_directories(${Qt5Core_INCLUDE_DIRS})
18   include_directories(${Qt5Gui_INCLUDE_DIRS})
19   include_directories(${Qt5OpenGL_INCLUDE_DIRS})
20   add_definitions(-D_USE_OPENGL -DUSE_OPENGL)
21 if(USE_SOCKET)
22   FIND_PACKAGE(Qt5Network REQUIRED)
23   include_directories(${Qt5Network_INCLUDE_DIRS})
24 endif()
25 SET(USE_QT_5 ON)
26 set(USE_QT5_4_APIS OFF CACHE BOOL "Build with Qt5.4 (or later) APIs if you can.")
27 set(USE_GCC_OLD_ABI ON CACHE BOOL "Build with older GCC ABIs if you can.")
28 set(USE_SDL2 ON CACHE BOOL "Build with libSDL2. DIsable is building with libSDL1.")
29
30 add_definitions(-D_USE_QT5)
31
32 if(USE_QT5_4_APIS)
33   add_definitions(-D_USE_QT_5_4)
34 endif()
35
36 if(USE_GCC_OLD_ABI)
37   add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
38 else()
39   add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
40 endif()
41
42 SET(CMAKE_AUTOMOC OFF)
43 SET(CMAKE_AUTORCC ON)
44 SET(CMAKE_INCLUDE_CURRENT_DIR ON)
45
46
47 add_definitions(-D_USE_QT)
48 add_definitions(-DUSE_QT)
49 add_definitions(-DQT_MAJOR_VERSION=${Qt5Widgets_VERSION_MAJOR})
50 add_definitions(-DQT_MINOR_VERSION=${Qt5Widgets_VERSION_MINOR})
51 # Build Flags
52
53 #find_package(Gettext)
54 #include_directories(${GETTEXT_INCLUDE_PATH})
55 #include(compile_gettext_catalogue)
56 #if(GETTEXT_FOUND)
57 #   add_definitions(-DUSE_GETTEXT)
58 #endif()
59
60
61 #find_package(Freetype)
62 #include_directories(${FREETYPE_INCLUDE_PATH})
63
64 #find_package(Iconv)
65 #if(ICONV_FOUND)
66 #  add_definitions(-DUSE_ICONV)
67 #endif()
68
69 if(USE_OPENMP)
70   find_package(OpenMP)
71   include_directories(${OPENMP_INCLUDE_PATH})
72 endif()
73
74 find_package(Threads)
75 include_directories(${THREADS_INCLUDE_PATH})
76
77 include(FindPkgConfig)
78
79 if(USE_SDL2)
80    if(CMAKE_CROSSCOMPILING)
81       include_directories(${SDL2_INCLUDE_DIRS})
82    else()
83       pkg_search_module(SDL2 REQUIRED sdl2)
84       include_directories(${SDL2_INCLUDE_DIRS})
85    endif()
86    set(SDL_LIBS ${SDL2_LIBRARIES})
87    add_definitions(-DUSE_SDL2)
88 else()
89    if(CMAKE_CROSSCOMPILING)
90       include_directories(${SDL_INCLUDE_DIRS})
91       set(SDL_LIBS ${SDL_LIBRARIES})
92    else()
93       include(FindSDL)
94       #pkg_search_module(SDL REQUIRED sdl)
95       #include_directories(${SDL_INCLUDE_DIRS})
96       include_directories(${SDL_INCLUDE_DIR})
97       set(SDL_LIBS ${SDL_LIBRARY})
98    endif()
99 endif()
100
101 # GCC Only?
102 if(CMAKE_COMPILER_IS_GNUCC) 
103   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flax-vector-conversions")
104 endif()
105
106 if(CMAKE_COMPILER_IS_GNUCXX) 
107  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -flax-vector-conversions")
108 endif()
109
110
111 check_function_exists("nanosleep" HAVE_NANOSLEEP)
112 if(NOT HAVE_NANOSLEEP)
113   check_library_exists("rt" "nanosleep" "" LIB_RT_HAS_NANOSLEEP)
114 endif(NOT HAVE_NANOSLEEP)
115
116 if(LIB_RT_HAS_NANOSLEEP)
117   add_target_library(${EXEC_TARGET} rt)
118 endif(LIB_RT_HAS_NANOSLEEP)
119
120 if(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
121   add_definitions(-DHAVE_NANOSLEEP)
122 endif(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
123
124
125 set(SRC_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../src)
126
127 if(WITH_DEBUGGER)
128    add_definitions(-DUSE_DEBUGGER)
129    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/debugger)
130 endif()
131
132 if(USE_QT_5)
133   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
134   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
135 endif()
136
137 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src)
138 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm)
139 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/common)
140 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/gui)
141
142 #add_subdirectory(../../src/agar/common/scaler/generic agar/common/scaler/generic)
143 add_subdirectory(../../src/qt/gui qt/gui)
144
145 add_subdirectory(../../src common)
146 add_subdirectory(../../src/vm vm/)
147
148 if(WITH_DEBUGGER)
149    add_subdirectory(../../src/qt/debugger qt/debugger)
150    set(LOCAL_LIBS ${LOCAL_LIBS} qt_debugger)
151 endif()
152
153 include(simd-x86)
154
155 set(BUNDLE_LIBS 
156                            ${OPENGL_LIBRARY}
157                            ${OPENCL_LIBRARY}
158                            ${GETTEXT_LIBRARY}
159                            ${OPENMP_LIBRARY}
160                            ${SDL_LIBS}
161                            ${ADDITIONAL_LIBRARIES}
162 )
163 if(USE_QT_5)
164   set(BUNDLE_LIBS ${BUNDLE_LIBS} ${QT_LIBRARIES})
165 #  FIND_PACKAGE(qtermwidget5)
166 #  if(QTERMWIDGET_FOUND)
167 #    #include(${QTERMWIDGET_USE_FILE})
168 #    include_directories(${QTERMWIDGET_INCLUDE_DIRS})
169 #    add_definitions(-DUSE_QTERMWIDGET)
170 #    set(BUNDLE_LIBS ${BUNDLE_LIBS} ${QTERMWIDGET_LIBRARIES} ncurses)
171 #    set(LOCAL_LIBS ${LOCAL_LIBS} libqtermwidget5.a)
172 #  endif()
173 endif()
174
175 set(BUNDLE_LIBS ${BUNDLE_LIBS} ${THREADS_LIBRARY})
176
177