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.
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)
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)
22 FIND_PACKAGE(Qt5Network REQUIRED)
23 include_directories(${Qt5Network_INCLUDE_DIRS})
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.")
30 add_definitions(-D_USE_QT5)
33 add_definitions(-D_USE_QT_5_4)
37 add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
39 add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
42 SET(CMAKE_AUTOMOC OFF)
44 SET(CMAKE_INCLUDE_CURRENT_DIR ON)
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})
53 #find_package(Gettext)
54 #include_directories(${GETTEXT_INCLUDE_PATH})
55 #include(compile_gettext_catalogue)
57 # add_definitions(-DUSE_GETTEXT)
61 #find_package(Freetype)
62 #include_directories(${FREETYPE_INCLUDE_PATH})
66 # add_definitions(-DUSE_ICONV)
71 include_directories(${OPENMP_INCLUDE_PATH})
75 include_directories(${THREADS_INCLUDE_PATH})
77 include(FindPkgConfig)
80 if(CMAKE_CROSSCOMPILING)
81 include_directories(${SDL2_INCLUDE_DIRS})
83 pkg_search_module(SDL2 REQUIRED sdl2)
84 include_directories(${SDL2_INCLUDE_DIRS})
86 set(SDL_LIBS ${SDL2_LIBRARIES})
87 add_definitions(-DUSE_SDL2)
89 if(CMAKE_CROSSCOMPILING)
90 include_directories(${SDL_INCLUDE_DIRS})
91 set(SDL_LIBS ${SDL_LIBRARIES})
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})
102 if(CMAKE_COMPILER_IS_GNUCC)
103 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flax-vector-conversions")
106 if(CMAKE_COMPILER_IS_GNUCXX)
107 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -flax-vector-conversions")
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)
116 if(LIB_RT_HAS_NANOSLEEP)
117 add_target_library(${EXEC_TARGET} rt)
118 endif(LIB_RT_HAS_NANOSLEEP)
120 if(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
121 add_definitions(-DHAVE_NANOSLEEP)
122 endif(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
125 set(SRC_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../src)
128 add_definitions(-DUSE_DEBUGGER)
129 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/debugger)
133 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
134 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
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)
142 #add_subdirectory(../../src/agar/common/scaler/generic agar/common/scaler/generic)
143 add_subdirectory(../../src/qt/gui qt/gui)
145 add_subdirectory(../../src common)
146 add_subdirectory(../../src/vm vm/)
149 add_subdirectory(../../src/qt/debugger qt/debugger)
150 set(LOCAL_LIBS ${LOCAL_LIBS} qt_debugger)
161 ${ADDITIONAL_LIBRARIES}
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)
175 set(BUNDLE_LIBS ${BUNDLE_LIBS} ${THREADS_LIBRARY})