The-NodeBox-Generator/CMakeLists.txt

168 lines
4.5 KiB
CMake

#
# Set up project
#
cmake_minimum_required(VERSION 2.6)
project(nodeboxeditor)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
#
# Configuration
#
set(NBE_MAJOR_VERSION 0)
set(NBE_MINOR_VERSION 9)
set(NBE_PATCH_VERSION 0)
set(NBE_LABEL_VERSION "Obsidian Glass")
option(DEBUG "Debug mode" 0)
if(DEBUG)
message("-- Is debug")
set(IS_DEBUG true)
endif(DEBUG)
configure_file(
"${PROJECT_SOURCE_DIR}/src/conf_cmake.hpp.in"
"${PROJECT_BINARY_DIR}/conf_cmake.hpp"
)
#
# Source files
#
set(NBE_SRC
src/main.cpp
src/Configuration.cpp
src/GUIHelpers.cpp
src/EditorState.cpp
src/MenuState.cpp
src/Editor.cpp
src/minetest.cpp
src/project/project.cpp
src/project/media.cpp
src/project/node.cpp
src/project/nodebox.cpp
src/modes/NBEditor.cpp
src/modes/NodeEditor.cpp
src/modes/TextureEditor.cpp
src/dialogs/FileDialog.cpp
src/dialogs/TextureDialog.cpp
src/dialogs/ImageDialog.cpp
src/FileFormat/FileFormat.cpp
src/FileFormat/helpers.cpp
src/FileFormat/NBE.cpp
src/FileFormat/Lua.cpp
src/FileFormat/CPP.cpp
src/FileFormat/obj.cpp
src/util/string.cpp
src/util/filesys.cpp
src/util/SimpleFileCombiner.cpp
src/util/tinyfiledialogs.c
)
add_executable(${PROJECT_NAME} ${NBE_SRC})
#
# Dependencies
#
find_package(Irrlicht REQUIRED)
if(WIN32)
# Windows
if(MSVC) # MSVC Specifics
set(PLATFORM_LIBS dbghelp.lib ${PLATFORM_LIBS})
# Surpress some useless warnings
add_definitions ( /D "_CRT_SECURE_NO_DEPRECATE" /W1 )
else() # Probably MinGW = GCC
set(PLATFORM_LIBS "")
endif()
set(PLATFORM_LIBS ws2_32.lib shlwapi.lib ${PLATFORM_LIBS})
# Zlib stuff
set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5"
CACHE PATH "Zlib include directory")
set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.lib"
CACHE FILEPATH "Path to zlibwapi.lib")
set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll"
CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
else(WIN32)
find_package(ZLIB REQUIRED)
endif(WIN32)
find_package(X11 REQUIRED)
find_package(OpenGL REQUIRED)
find_package(JPEG REQUIRED)
find_package(BZip2 REQUIRED)
find_package(PNG REQUIRED)
include_directories(
${PROJECT_BINARY_DIR}
${IRRLICHT_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR}
${CMAKE_BUILD_TYPE}
${X11_INCLUDE_DIR}
${OPENGL_INCLUDE_DIR}
${PNG_INCLUDE_DIR}
)
set(TLL
${IRRLICHT_LIBRARY}
${ZLIB_LIBRARIES}
${X11_LIBRARIES}
${OPENGL_LIBRARIES}
${JPEG_LIBRARIES}
${BZIP2_LIBRARIES}
${PNG_LIBRARIES}
)
if(UNIX)
find_library(XXF86VM_LIBRARY Xxf86vm)
target_link_libraries(
${PROJECT_NAME}
${TLL}
${XXF86VM_LIBRARY}
)
else()
target_link_libraries(
${PROJECT_NAME}
${TLL}
)
endif(UNIX)
#
# Executable
#
file(MAKE_DIRECTORY "bin")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -pthread")
#
# Installation
#
install(FILES media/fontlucida.png DESTINATION share/nodeboxeditor/media)
install(FILES media/gui_scale.png DESTINATION share/nodeboxeditor/media)
install(FILES media/coordinates.png DESTINATION share/nodeboxeditor/media)
install(FILES media/icon_mode_node.png DESTINATION share/nodeboxeditor/media)
install(FILES media/icon_mode_nodebox.png DESTINATION share/nodeboxeditor/media)
install(FILES media/icon_mode_texture.png DESTINATION share/nodeboxeditor/media)
install(FILES media/sky.jpg DESTINATION share/nodeboxeditor/media)
install(FILES media/texture_box.png DESTINATION share/nodeboxeditor/media)
install(FILES media/texture_terrain.png DESTINATION share/nodeboxeditor/media)
install(FILES media/icon.png DESTINATION share/nodeboxeditor/media)
install(FILES media/rotate_x.png DESTINATION share/nodeboxeditor/media)
install(FILES media/rotate_y.png DESTINATION share/nodeboxeditor/media)
install(FILES media/rotate_z.png DESTINATION share/nodeboxeditor/media)
install(FILES media/flip_x.png DESTINATION share/nodeboxeditor/media)
install(FILES media/flip_y.png DESTINATION share/nodeboxeditor/media)
install(FILES media/flip_z.png DESTINATION share/nodeboxeditor/media)
install(FILES editor.conf.example DESTINATION share/nodeboxeditor)
if(UNIX)
install (FILES nodeboxeditor.desktop DESTINATION share/applications)
endif()
install(FILES README.md DESTINATION share/nodeboxeditor)
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
if(WIN32)
if(DEFINED IRRLICHT_DLL)
install(FILES ${IRRLICHT_DLL} DESTINATION bin)
endif()
endif()