|
| 1 | +CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR) |
| 2 | +#cmake_policy( SET CMP0002 OLD) |
| 3 | +#cmake_policy( SET CMP0003 NEW) |
| 4 | +SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) |
| 5 | + |
| 6 | +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Modules/") |
| 7 | + |
| 8 | +project(LIGHTTWIST) |
| 9 | +set(LIGHTTWIST_VERSION_MAJOR "1") |
| 10 | +set(LIGHTTWIST_VERSION_MINOR "0") |
| 11 | +set(LIGHTTWIST_VERSION_PATCH "0") |
| 12 | +set(LIGHTTWIST_VERSION "${LIGHTTWIST_VERSION_MAJOR}.${LIGHTTWIST_VERSION_MINOR}") |
| 13 | + |
| 14 | +#installation directories relative to prefix path CMAKE_INSTALL_PREFIX:PATH |
| 15 | +set(LT_BIN bin) |
| 16 | +set(LT_LIB lib) |
| 17 | +set(LT_SHARE share/lighttwist) |
| 18 | + |
| 19 | +set(MATRIX_LIBS matrixmath) |
| 20 | +set(IMGU_LIBS imgu) |
| 21 | + |
| 22 | +OPTION(LT_OSG_FRAMEWORKS "Use OSG Frameworks" ON) |
| 23 | + |
| 24 | +find_package(AVFORMAT) |
| 25 | +if(AVFORMAT_FOUND) |
| 26 | + add_definitions(-DHAVE_LIBAVFORMAT) |
| 27 | + include_directories(${AVFORMAT_INCLUDE_DIR}) |
| 28 | + #add_definitions(${AVFORMAT_DEFINITIONS}) |
| 29 | + link_directories(${AVFORMAT_LINK_DIRECTORIES}) |
| 30 | +else() |
| 31 | + message(FATAL_ERROR "Cannot build without AVFORMAT") |
| 32 | + #message("Could not find libavformat") |
| 33 | +endif() |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +find_package(AVCODEC) |
| 38 | +if(AVCODEC_FOUND) |
| 39 | + add_definitions(-DHAVE_LIBAVCODEC) |
| 40 | + include_directories(${AVCODEC_INCLUDE_DIR}) |
| 41 | + #add_definitions(${AVCODEC_DEFINITIONS}) |
| 42 | + link_directories(${AVCODEC_LINK_DIRECTORIES}) |
| 43 | +else() |
| 44 | + message(FATAL_ERROR "Cannot build without AVCODEC") |
| 45 | + #message("Could not find libavcodec") |
| 46 | +endif() |
| 47 | + |
| 48 | +find_package(AVUTIL) |
| 49 | +if(AVUTIL_FOUND) |
| 50 | + add_definitions(-DHAVE_LIBAVUTIL) |
| 51 | + include_directories(${AVUTIL_INCLUDE_DIR}) |
| 52 | + #add_definitions(${AVUTIL_DEFINITIONS}) |
| 53 | + link_directories(${AVUTIL_LINK_DIRECTORIES}) |
| 54 | +else() |
| 55 | + message(FATAL_ERROR "Cannot build without AVUTIL") |
| 56 | + #message("Could not find libavutil") |
| 57 | +endif() |
| 58 | + |
| 59 | +find_package(SWSCALE) |
| 60 | +if(SWSCALE_FOUND) |
| 61 | + add_definitions(-DHAVE_LIBSWSCALE) |
| 62 | + include_directories(${SWSCALE_INCLUDE_DIR}) |
| 63 | + link_directories(${SWSCALE_LINK_DIRECTORIES}) |
| 64 | +else() |
| 65 | + message(FATAL_ERROR "Cannot build without SWSCALE") |
| 66 | +endif() |
| 67 | + |
| 68 | +find_package(JSW) |
| 69 | +if(JSW_FOUND) |
| 70 | + add_definitions(-DHAVE_LIBJSW) |
| 71 | + include_directories(${JSW_INCLUDE_DIR}) |
| 72 | + link_directories(${JSW_LINK_DIRECTORIES}) |
| 73 | +else() |
| 74 | + #message(FATAL_ERROR "Cannot build without JSW") |
| 75 | + #message("Could not find JSW") |
| 76 | +endif() |
| 77 | + |
| 78 | +find_package(LUA) |
| 79 | +if(LUA_FOUND) |
| 80 | + add_definitions(-DHAVE_LIBLUA) |
| 81 | + include_directories(${LUA_INCLUDE_DIR}) |
| 82 | + #add_definitions(${LUA_DEFINITIONS}) |
| 83 | + link_directories(${LUA_LINK_DIRECTORIES}) |
| 84 | +else() |
| 85 | + #message(FATAL_ERROR "Cannot build without LUA") |
| 86 | + message("Could not find liblua5.1 (package lua5.1 liblua5.1-0-dev)") |
| 87 | +endif() |
| 88 | + |
| 89 | + |
| 90 | +find_package(PTHREAD) |
| 91 | +if(PTHREAD_FOUND) |
| 92 | + add_definitions(-DHAVE_PTHREAD) |
| 93 | + #set(IMGU_LIBS ${IMGU_LIBS} pthread) |
| 94 | + include_directories(${PTHREAD_INCLUDE_DIR}) |
| 95 | + link_directories(${PTHREAD_LINK_DIRECTORIES}) |
| 96 | +else() |
| 97 | + #message(FATAL_ERROR "Cannot build without pthread") |
| 98 | + message("Could not find pthread") |
| 99 | +endif() |
| 100 | + |
| 101 | + |
| 102 | +find_package(BMC) |
| 103 | +if(BMC_FOUND) |
| 104 | + add_definitions(-DHAVE_BMC) |
| 105 | + include_directories(${BMC_INCLUDE_DIR}) |
| 106 | + link_directories(${BMC_LINK_DIRECTORIES}) |
| 107 | + set(BMC_LIBS bmc m ssl) |
| 108 | +else() |
| 109 | + message(FATAL_ERROR "Cannot build without BMC") |
| 110 | +endif() |
| 111 | + |
| 112 | +find_package(SWIG) |
| 113 | +if(SWIG_FOUND) |
| 114 | + |
| 115 | +else() |
| 116 | + #message(FATAL_ERROR "Cannot build without SWIG") |
| 117 | + message("Could not find SWIG") |
| 118 | +endif() |
| 119 | + |
| 120 | +find_package(OSG) |
| 121 | +if(OSG_FOUND) |
| 122 | + add_definitions(-DHAVE_OSG) |
| 123 | + include_directories(${OSG_INCLUDE_DIR}) |
| 124 | + link_directories(${OSG_LINK_DIRECTORIES}) |
| 125 | + if(APPLE) |
| 126 | + set(OSG_LIBS "-framework osg -framework osgDB -framework osgViewer -framework OpenThreads") |
| 127 | +# else() |
| 128 | +# set(OSG_LIBS osg osgDB osgViewer) |
| 129 | + endif() |
| 130 | +else() |
| 131 | + message(FATAL_ERROR "Cannot build without OSG") |
| 132 | + #message("Could not find OSG") |
| 133 | +endif() |
| 134 | + |
| 135 | +#----------------------------------------------------------------------------- |
| 136 | +### lib and path setup |
| 137 | +#----------------------------------------------------------------------------- |
| 138 | +include_directories(/usr/include /usr/local/include ${LIGHTTWIST_SOURCE_DIR}/src ${LIGHTTWIST_SOURCE_DIR}/src/player-slave/lib-layers/) |
| 139 | +set(IMGU_LIBS ${IMGU_LIBS} ${MATRIX_LIBS}) |
| 140 | + |
| 141 | +set(JS_LIBS jsw) |
| 142 | +set(LT_LIBS ltutils) |
| 143 | +set(AV_LIBS ${AVUTIL_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${SWSCALE_LIBRARIES}) |
| 144 | +set(LUA_LIBS ${LUA_LIBRARIES}) |
| 145 | + |
| 146 | +if(APPLE) |
| 147 | + set(AV_LIBS ${AV_LIBS} z bz2) |
| 148 | +endif() |
| 149 | + |
| 150 | +if(APPLE) |
| 151 | + set(GUI_LIBS fltk fltk_images "-framework Carbon") |
| 152 | +else() |
| 153 | + if(WIN32) |
| 154 | + set(GUI_LIBS fltk fltk_images opengl32 glut32win glu32 gdi32 ole32 ws2_32 uuid) |
| 155 | + add_definitions(-D_STDCALL_SUPPORTED -D_M_IX86) |
| 156 | + else() |
| 157 | + set(GUI_LIBS fltk fltk_images Xft) |
| 158 | + endif() |
| 159 | +endif() |
| 160 | + |
| 161 | +add_subdirectory (src) |
| 162 | + |
| 163 | +#----------------------------------------------------------------------------- |
| 164 | +### for packaging |
| 165 | +#----------------------------------------------------------------------------- |
| 166 | +set(CPACK_PACKAGE_VERSION ${LIGHTTWIST_VERSION}) |
| 167 | +set(CPACK_PACKAGE_VERSION_MAJOR ${LIGHTTWIST_VERSION_MAJOR}) |
| 168 | +set(CPACK_PACKAGE_VERSION_MINOR ${LIGHTTWIST_VERSION_MINOR}) |
| 169 | +set(CPACK_PACKAGE_VERSION_PATCH ${LIGHTTWIST_VERSION_PATCH}) |
| 170 | +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Lighttwist") |
| 171 | +set(CPACK_PACKAGE_VENDOR "University of Montreal") |
| 172 | +set(CPACK_SOURCE_PACKAGE_FILE_NAME "lighttwist-${LIGHTTWIST_VERSION}") |
| 173 | +set(CPACK_SOURCE_IGNORE_FILES "${LIGHTTWIST_SOURCE_DIR}/test/") |
| 174 | +include(CPack) |
| 175 | + |
| 176 | +####################### |
| 177 | +#this is for uninstallation |
| 178 | +#requires file CMakeModules/cmake_uninstall.cmake.in |
| 179 | +####################### |
| 180 | +CONFIGURE_FILE( |
| 181 | + "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/cmake_uninstall.cmake.in" |
| 182 | + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
| 183 | + IMMEDIATE @ONLY) |
| 184 | +ADD_CUSTOM_TARGET(uninstall |
| 185 | + "${CMAKE_COMMAND}" -P |
| 186 | +"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
| 187 | + |
| 188 | + |
| 189 | + |
| 190 | + |
0 commit comments