Dennis:
OpenMesh cmake support git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@111 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
26
CMakeLists.txt
Normal file
26
CMakeLists.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
cmake_minimum_required (VERSION 2.6)
|
||||||
|
|
||||||
|
project (OpenMesh)
|
||||||
|
|
||||||
|
# add our macro directory to cmake search path
|
||||||
|
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
# include our cmake files
|
||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
acg_get_version ()
|
||||||
|
|
||||||
|
include (ACGOutput)
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
add_definitions(
|
||||||
|
-D_USE_MATH_DEFINES -DNOMINMAX
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_subdirectory (src/OpenMesh/Core)
|
||||||
|
add_subdirectory (src/OpenMesh/Tools)
|
||||||
|
add_subdirectory (src/OpenMesh/Apps)
|
||||||
|
|
||||||
|
# display results
|
||||||
|
acg_print_configure_header ("OpenMesh")
|
||||||
380
cmake/ACGCommon.cmake
Normal file
380
cmake/ACGCommon.cmake
Normal file
@@ -0,0 +1,380 @@
|
|||||||
|
if (EXISTS ${CMAKE_SOURCE_DIR}/${CMAKE_PROJECT_NAME}.cmake)
|
||||||
|
include (${CMAKE_SOURCE_DIR}/${CMAKE_PROJECT_NAME}.cmake)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# prevent build in source directory
|
||||||
|
if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
||||||
|
message (SEND_ERROR "Building in the source directory is not supported.")
|
||||||
|
message (FATAL_ERROR "Please remove the created \"CMakeCache.txt\" file, the \"CMakeFiles\" directory and create a build directory and call \"${CMAKE_COMMAND} <path to the sources>\".")
|
||||||
|
endif ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
||||||
|
|
||||||
|
# allow only Debug and Release builds
|
||||||
|
set (CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE)
|
||||||
|
mark_as_advanced (CMAKE_CONFIGURATION_TYPES)
|
||||||
|
|
||||||
|
# set Debus as default build target
|
||||||
|
if (NOT CMAKE_BUILD_TYPE)
|
||||||
|
set (CMAKE_BUILD_TYPE Debug CACHE STRING
|
||||||
|
"Choose the type of build, options are: Debug, Release."
|
||||||
|
FORCE)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# create our output directroy
|
||||||
|
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build)
|
||||||
|
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# read version from file
|
||||||
|
macro (acg_get_version)
|
||||||
|
file (READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" _file)
|
||||||
|
string (
|
||||||
|
REGEX REPLACE
|
||||||
|
"^.*VERSION=([^\n]*).*$" "\\1"
|
||||||
|
_version ${_file}
|
||||||
|
)
|
||||||
|
string (
|
||||||
|
REGEX REPLACE
|
||||||
|
"^.*MAJOR=([^\n]*).*$" "\\1"
|
||||||
|
_major ${_file}
|
||||||
|
)
|
||||||
|
string (
|
||||||
|
REGEX REPLACE
|
||||||
|
"^.*MINOR=([^\n]*).*$" "\\1"
|
||||||
|
_minor ${_file}
|
||||||
|
)
|
||||||
|
string (
|
||||||
|
REGEX REPLACE
|
||||||
|
"^.*PATCH=([^\n]*).*$" "\\1"
|
||||||
|
_patch ${_file}
|
||||||
|
)
|
||||||
|
set (VERSION ${_version})
|
||||||
|
set (VERSION_MAJOR ${_major})
|
||||||
|
set (VERSION_MINOR ${_minor})
|
||||||
|
set (VERSION_PATCH ${_patch})
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
|
||||||
|
# set directory structures for the different platforms
|
||||||
|
if (WIN32)
|
||||||
|
set (ACG_PROJECT_DATADIR ".")
|
||||||
|
set (ACG_PROJECT_LIBDIR "bin")
|
||||||
|
set (ACG_PROJECT_BINDIR "bin")
|
||||||
|
set (ACG_PROJECT_PLUGINDIR "Plugins")
|
||||||
|
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR})
|
||||||
|
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR})
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
set (ACG_PROJECT_DATADIR "share/${CMAKE_PROJECT_NAME}")
|
||||||
|
set (ACG_PROJECT_LIBDIR "lib/${CMAKE_PROJECT_NAME}")
|
||||||
|
set (ACG_PROJECT_PLUGINDIR "lib/${CMAKE_PROJECT_NAME}/plugins")
|
||||||
|
set (ACG_PROJECT_BINDIR "bin")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# allow a project to modify the directories
|
||||||
|
if (COMMAND acg_modify_project_dirs)
|
||||||
|
acg_modify_project_dirs ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# sets default build properties
|
||||||
|
macro (acg_set_target_props target)
|
||||||
|
if (WIN32)
|
||||||
|
set_target_properties (
|
||||||
|
${target} PROPERTIES
|
||||||
|
BUILD_WITH_INSTALL_RPATH 1
|
||||||
|
SKIP_BUILD_RPATH 0
|
||||||
|
)
|
||||||
|
elseif (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE)
|
||||||
|
set_target_properties (
|
||||||
|
${target} PROPERTIES
|
||||||
|
INSTALL_NAME_DIR "@executable_path/../lib/${CMAKE_PROJECT_NAME}"
|
||||||
|
BUILD_WITH_INSTALL_RPATH 1
|
||||||
|
SKIP_BUILD_RPATH 0
|
||||||
|
)
|
||||||
|
elseif (NOT APPLE)
|
||||||
|
set_target_properties (
|
||||||
|
${target} PROPERTIES
|
||||||
|
INSTALL_RPATH "$ORIGIN/../lib/${CMAKE_PROJECT_NAME}"
|
||||||
|
BUILD_WITH_INSTALL_RPATH 1
|
||||||
|
SKIP_BUILD_RPATH 0
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}"
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
include (AddFileDependencies)
|
||||||
|
include (ACGCompiler)
|
||||||
|
|
||||||
|
# define INCLUDE_TEMPLATES for everything we build
|
||||||
|
add_definitions (-DINCLUDE_TEMPLATES)
|
||||||
|
|
||||||
|
# look for selected qt dependencies
|
||||||
|
macro (acg_qt4)
|
||||||
|
if (NOT QT4_FOUND)
|
||||||
|
find_package (Qt4 ${ARGN})
|
||||||
|
|
||||||
|
set (QT_USE_QTOPENGL 1)
|
||||||
|
set (QT_USE_QTNETWORK 1)
|
||||||
|
set (QT_USE_QTSCRIPT 1)
|
||||||
|
set (QT_USE_QTSQL 1)
|
||||||
|
set (QT_USE_QTHELP 1)
|
||||||
|
set (QT_USE_QTWEBKIT 1)
|
||||||
|
set (QT_USE_QTUITOOLS 1)
|
||||||
|
|
||||||
|
include (${QT_USE_FILE})
|
||||||
|
endif ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# unsets the given variable
|
||||||
|
macro (acg_unset var)
|
||||||
|
set (${var} "" CACHE INTERNAL "")
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# sets the given variable
|
||||||
|
macro (acg_set var value)
|
||||||
|
set (${var} ${value} CACHE INTERNAL "")
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# test for OpenMP
|
||||||
|
macro (acg_openmp)
|
||||||
|
if (NOT OPENMP_NOTFOUND)
|
||||||
|
find_package(OpenMP)
|
||||||
|
if (OPENMP_FOUND)
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||||
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||||
|
add_definitions(-DUSE_OPENMP)
|
||||||
|
else ()
|
||||||
|
set (OPENMP_NOTFOUND 1)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# test for FTGL
|
||||||
|
macro (acg_ftgl)
|
||||||
|
find_package (Freetype)
|
||||||
|
|
||||||
|
if (FREETYPE_FOUND)
|
||||||
|
find_package (FTGL)
|
||||||
|
|
||||||
|
if (FTGL_FOUND)
|
||||||
|
add_definitions (-DUSE_FTGL)
|
||||||
|
include_directories (${FTGL_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIR_freetype2})
|
||||||
|
set (FTGL_LIBS ${FREETYPE_LIBRARIES} ${FTGL_LIBRARIES})
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# append all files with extension "ext" in the "dirs" directories to "ret"
|
||||||
|
macro (acg_append_files ret ext)
|
||||||
|
foreach (_dir ${ARGN})
|
||||||
|
file (GLOB _files "${_dir}/${ext}")
|
||||||
|
list (APPEND ${ret} ${_files})
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# append all files with extension "ext" in the "dirs" directories and its subdirectories to "ret"
|
||||||
|
macro (acg_append_files_recursive ret ext)
|
||||||
|
foreach (_dir ${ARGN})
|
||||||
|
file (GLOB_RECURSE _files "${_dir}/${ext}")
|
||||||
|
list (APPEND ${ret} ${_files})
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# drop all "*T.cc" files from list
|
||||||
|
macro (acg_drop_templates list)
|
||||||
|
foreach (_file ${${list}})
|
||||||
|
if (_file MATCHES "T.cc$")
|
||||||
|
list (REMOVE_ITEM ${list} ${_file})
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# generate moc targets for sources in list
|
||||||
|
macro (acg_qt4_automoc moc_SRCS)
|
||||||
|
qt4_get_moc_flags (_moc_INCS)
|
||||||
|
|
||||||
|
set (_matching_FILES )
|
||||||
|
foreach (_current_FILE ${ARGN})
|
||||||
|
|
||||||
|
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
||||||
|
# if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
|
||||||
|
# here. this is required to make bouic work correctly:
|
||||||
|
# we need to add generated .cpp files to the sources (to compile them),
|
||||||
|
# but we cannot let automoc handle them, as the .cpp files don't exist yet when
|
||||||
|
# cmake is run for the very first time on them -> however the .cpp files might
|
||||||
|
# exist at a later run. at that time we need to skip them, so that we don't add two
|
||||||
|
# different rules for the same moc file
|
||||||
|
get_source_file_property (_skip ${_abs_FILE} SKIP_AUTOMOC)
|
||||||
|
|
||||||
|
if ( NOT _skip AND EXISTS ${_abs_FILE} )
|
||||||
|
|
||||||
|
file (READ ${_abs_FILE} _contents)
|
||||||
|
|
||||||
|
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
||||||
|
|
||||||
|
string (REGEX MATCHALL "Q_OBJECT" _match "${_contents}")
|
||||||
|
if (_match)
|
||||||
|
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
||||||
|
set (_header ${_abs_FILE})
|
||||||
|
set (_moc ${CMAKE_CURRENT_BINARY_DIR}/moc_${_basename}.cpp)
|
||||||
|
|
||||||
|
add_custom_command (OUTPUT ${_moc}
|
||||||
|
COMMAND ${QT_MOC_EXECUTABLE}
|
||||||
|
ARGS ${_moc_INCS} ${_header} -o ${_moc}
|
||||||
|
DEPENDS ${_header}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_file_dependencies (${_abs_FILE} ${_moc})
|
||||||
|
set (${moc_SRCS} ${${moc_SRCS}} ${_moc})
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# generate uic targets for sources in list
|
||||||
|
macro (acg_qt4_autouic uic_SRCS)
|
||||||
|
|
||||||
|
set (_matching_FILES )
|
||||||
|
foreach (_current_FILE ${ARGN})
|
||||||
|
|
||||||
|
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
||||||
|
|
||||||
|
if ( EXISTS ${_abs_FILE} )
|
||||||
|
|
||||||
|
file (READ ${_abs_FILE} _contents)
|
||||||
|
|
||||||
|
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
||||||
|
|
||||||
|
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
||||||
|
string (REGEX REPLACE "Ui$" "" _cbasename ${_basename})
|
||||||
|
set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${_basename}.hh)
|
||||||
|
set (_header ${_basename}.hh)
|
||||||
|
set (_source ${_abs_PATH}/${_cbasename}.cc)
|
||||||
|
|
||||||
|
add_custom_command (OUTPUT ${_outfile}
|
||||||
|
COMMAND ${QT_UIC_EXECUTABLE}
|
||||||
|
ARGS -o ${_outfile} ${_abs_FILE}
|
||||||
|
DEPENDS ${_abs_FILE})
|
||||||
|
|
||||||
|
add_file_dependencies (${_source} ${_outfile})
|
||||||
|
set (${uic_SRCS} ${${uic_SRCS}} ${_outfile})
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# get all files in directory, but ignore svn
|
||||||
|
macro (acg_get_files_in_dir ret dir)
|
||||||
|
file (GLOB_RECURSE __files RELATIVE "${dir}" "${dir}/*")
|
||||||
|
foreach (_file ${__files})
|
||||||
|
if (NOT _file MATCHES ".*svn.*")
|
||||||
|
list (APPEND ${ret} "${_file}")
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# copy the whole directory without svn files
|
||||||
|
function (acg_copy_after_build target src dst)
|
||||||
|
acg_unset (_files)
|
||||||
|
acg_get_files_in_dir (_files ${src})
|
||||||
|
foreach (_file ${_files})
|
||||||
|
add_custom_command(TARGET ${target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${src}/${_file}" "${dst}/${_file}"
|
||||||
|
)
|
||||||
|
endforeach ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# install the whole directory without svn files
|
||||||
|
function (acg_install_dir src dst)
|
||||||
|
acg_unset (_files)
|
||||||
|
acg_get_files_in_dir (_files ${src})
|
||||||
|
foreach (_file ${_files})
|
||||||
|
get_filename_component (_file_PATH ${_file} PATH)
|
||||||
|
install(FILES "${src}/${_file}"
|
||||||
|
DESTINATION "${dst}/${_file_PATH}"
|
||||||
|
)
|
||||||
|
endforeach ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# extended version of add_executable that also copies output to out Build directory
|
||||||
|
function (acg_add_executable _target)
|
||||||
|
add_executable (${_target} ${ARGN})
|
||||||
|
|
||||||
|
# set common target properties defined in common.cmake
|
||||||
|
acg_set_target_props (${_target})
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
# copy exe file to "Build" directory
|
||||||
|
# Visual studio will create this file in a subdirectory so we can't use
|
||||||
|
# RUNTIME_OUTPUT_DIRECTORY directly here
|
||||||
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}.exe
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/${_target}.exe)
|
||||||
|
elseif (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE)
|
||||||
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/${_target})
|
||||||
|
endif ()
|
||||||
|
if (NOT ACG_PROJECT_BUNDLE OR NOT APPLE)
|
||||||
|
install (TARGETS ${_target} DESTINATION ${ACG_PROJECT_BINDIR})
|
||||||
|
endif ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# extended version of add_library that also copies output to out Build directory
|
||||||
|
function (acg_add_library _target _type)
|
||||||
|
add_library (${_target} ${_type} ${ARGN})
|
||||||
|
|
||||||
|
# set common target properties defined in common.cmake
|
||||||
|
acg_set_target_props (${_target})
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
# copy exe file to "Build" directory
|
||||||
|
# Visual studio will create this file in a subdirectory so we can't use
|
||||||
|
# RUNTIME_OUTPUT_DIRECTORY directly here
|
||||||
|
if (${_type} STREQUAL SHARED)
|
||||||
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}.dll
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/${_target}.dll)
|
||||||
|
elseif (${_type} STREQUAL MODULE)
|
||||||
|
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
||||||
|
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
||||||
|
endif ()
|
||||||
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}.dll
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/${_target}.dll)
|
||||||
|
endif ()
|
||||||
|
elseif (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE)
|
||||||
|
if (${_type} STREQUAL SHARED)
|
||||||
|
add_custom_command (TARGET ${target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}.dylib
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/${_target}.dylib)
|
||||||
|
elseif (${_type} STREQUAL MODULE)
|
||||||
|
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
||||||
|
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
||||||
|
endif ()
|
||||||
|
add_custom_command (TARGET ${target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}.so
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/${_target}.so)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
if (NOT ACG_PROJECT_BUNDLE OR NOT APPLE)
|
||||||
|
if (${_type} STREQUAL SHARED)
|
||||||
|
install (TARGETS ${_target} DESTINATION ${ACG_PROJECT_LIBDIR})
|
||||||
|
elseif (${_type} STREQUAL MODULE)
|
||||||
|
install (TARGETS ${_target} DESTINATION ${ACG_PROJECT_PLUGINDIR})
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endfunction ()
|
||||||
17
cmake/ACGCompiler.cmake
Normal file
17
cmake/ACGCompiler.cmake
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
################################################################################
|
||||||
|
# Custom settings for compiler flags and similar
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
|
|
||||||
|
set (CMAKE_CFLAGS_RELEASE "-O3 -DINCLUDE_TEMPLATES -W -Wall -Wno-unused -DNDEBUG")
|
||||||
|
set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DINCLUDE_TEMPLATES -ftemplate-depth-100 -W -Wall -Wno-unused -DNDEBUG")
|
||||||
|
set (CMAKE_C_FLAGS_DEBUG "-g -DINCLUDE_TEMPLATES -W -Wall -Wno-unused -DDEBUG")
|
||||||
|
set (CMAKE_CXX_FLAGS_DEBUG "-g -DINCLUDE_TEMPLATES -ftemplate-depth-100 -W -Wall -Wno-unused -DDEBUG")
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
add_definitions( -DARCH_DARWIN )
|
||||||
|
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-non-virtual-dtor")
|
||||||
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-non-virtual-dtor")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
39
cmake/ACGOutput.cmake
Normal file
39
cmake/ACGOutput.cmake
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# fill string with spaces
|
||||||
|
macro (acg_format_string str length return)
|
||||||
|
string (LENGTH "${str}" _str_len)
|
||||||
|
math (EXPR _add_chr "${length} - ${_str_len}")
|
||||||
|
set (${return} "${str}")
|
||||||
|
while (_add_chr GREATER 0)
|
||||||
|
set (${return} "${${return}} ")
|
||||||
|
math (EXPR _add_chr "${_add_chr} - 1")
|
||||||
|
endwhile ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# print message with color escape sequences if CMAKE_COLOR_MAKEFILE is set
|
||||||
|
string (ASCII 27 _escape)
|
||||||
|
function (acg_color_message _str)
|
||||||
|
if (CMAKE_COLOR_MAKEFILE AND NOT WIN32)
|
||||||
|
message (${_str})
|
||||||
|
else ()
|
||||||
|
string (REGEX REPLACE "${_escape}.[0123456789;]*m" "" __str ${_str})
|
||||||
|
message (${__str})
|
||||||
|
endif ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# info header
|
||||||
|
function (acg_print_configure_header _name)
|
||||||
|
acg_format_string ("${_name}" 40 _project)
|
||||||
|
acg_format_string ("${VERSION}" 40 _version)
|
||||||
|
acg_color_message ("\n${_escape}[40;37m************************************************************${_escape}[0m")
|
||||||
|
acg_color_message ("${_escape}[40;37m* ${_escape}[1;31mACG ${_escape}[0;40;34mBuildsystem${_escape}[0m${_escape}[40;37m *${_escape}[0m")
|
||||||
|
acg_color_message ("${_escape}[40;37m* *${_escape}[0m")
|
||||||
|
acg_color_message ("${_escape}[40;37m* Package : ${_escape}[32m${_project} ${_escape}[37m *${_escape}[0m")
|
||||||
|
acg_color_message ("${_escape}[40;37m* Version : ${_escape}[32m${_version} ${_escape}[37m *${_escape}[0m")
|
||||||
|
acg_color_message ("${_escape}[40;37m************************************************************${_escape}[0m")
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# info line
|
||||||
|
function (acg_print_configure_footer)
|
||||||
|
acg_color_message ("${_escape}[40;37m************************************************************${_escape}[0m\n")
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
47
cmake/FindGLEW.cmake
Normal file
47
cmake/FindGLEW.cmake
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# - Try to find GLEW
|
||||||
|
# Once done this will define
|
||||||
|
#
|
||||||
|
# GLEW_FOUND - system has GLEW
|
||||||
|
# GLEW_INCLUDE_DIR - the GLEW include directory
|
||||||
|
# GLEW_LIBRARY_DIR - where the libraries are
|
||||||
|
# GLEW_LIBRARY - Link these to use GLEW
|
||||||
|
#
|
||||||
|
|
||||||
|
IF (GLEW_INCLUDE_DIR)
|
||||||
|
# Already in cache, be silent
|
||||||
|
SET(GLEW_FIND_QUIETLY TRUE)
|
||||||
|
ENDIF (GLEW_INCLUDE_DIR)
|
||||||
|
|
||||||
|
if( WIN32 )
|
||||||
|
if( MSVC80 )
|
||||||
|
set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8/VC" )
|
||||||
|
endif( MSVC80 )
|
||||||
|
if( MSVC71 )
|
||||||
|
set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7" )
|
||||||
|
endif( MSVC71 )
|
||||||
|
FIND_PATH( GLEW_INCLUDE_DIR gl/glew.h gl/wglew.h
|
||||||
|
PATHS c:/glew/include ${COMPILER_PATH}/PlatformSDK/Include )
|
||||||
|
SET( GLEW_NAMES glew32 )
|
||||||
|
FIND_LIBRARY( GLEW_LIBRARY
|
||||||
|
NAMES ${GLEW_NAMES}
|
||||||
|
PATHS c:/glew/lib ${COMPILER_PATH}/PlatformSDK/Lib )
|
||||||
|
else( WIN32 )
|
||||||
|
FIND_PATH( GLEW_INCLUDE_DIR glew.h wglew.h
|
||||||
|
PATHS /usr/local/include /usr/include
|
||||||
|
PATH_SUFFIXES gl/ GL/ )
|
||||||
|
SET( GLEW_NAMES glew GLEW )
|
||||||
|
FIND_LIBRARY( GLEW_LIBRARY
|
||||||
|
NAMES ${GLEW_NAMES}
|
||||||
|
PATHS /usr/lib /usr/local/lib )
|
||||||
|
endif( WIN32 )
|
||||||
|
|
||||||
|
GET_FILENAME_COMPONENT( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} PATH )
|
||||||
|
|
||||||
|
IF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
|
||||||
|
SET(GLEW_FOUND TRUE)
|
||||||
|
SET( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} )
|
||||||
|
ELSE (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
|
||||||
|
SET( GLEW_FOUND FALSE )
|
||||||
|
SET( GLEW_LIBRARY_DIR )
|
||||||
|
ENDIF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
|
||||||
|
|
||||||
108
cmake/FindOpenMP.cmake
Normal file
108
cmake/FindOpenMP.cmake
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# - Finds OpenMP support
|
||||||
|
# This module can be used to detect OpenMP support in a compiler.
|
||||||
|
# If the compiler supports OpenMP, the flags required to compile with
|
||||||
|
# openmp support are set.
|
||||||
|
#
|
||||||
|
# The following variables are set:
|
||||||
|
# OpenMP_C_FLAGS - flags to add to the C compiler for OpenMP support
|
||||||
|
# OpenMP_CXX_FLAGS - flags to add to the CXX compiler for OpenMP support
|
||||||
|
# OPENMP_FOUND - true if openmp is detected
|
||||||
|
#
|
||||||
|
# Supported compilers can be found at http://openmp.org/wp/openmp-compilers/
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright 2008, 2009 <André Rigland Brodtkorb> Andre.Brodtkorb@ifi.uio.no
|
||||||
|
#
|
||||||
|
# Redistribution AND use is allowed according to the terms of the New
|
||||||
|
# BSD license.
|
||||||
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||||
|
|
||||||
|
|
||||||
|
include(CheckCSourceCompiles)
|
||||||
|
include(CheckCXXSourceCompiles)
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
set(OpenMP_C_FLAG_CANDIDATES
|
||||||
|
#Gnu
|
||||||
|
"-fopenmp"
|
||||||
|
#Microsoft Visual Studio
|
||||||
|
"/openmp"
|
||||||
|
#Intel windows
|
||||||
|
"-Qopenmp"
|
||||||
|
#Intel
|
||||||
|
"-openmp"
|
||||||
|
#Empty, if compiler automatically accepts openmp
|
||||||
|
" "
|
||||||
|
#Sun
|
||||||
|
"-xopenmp"
|
||||||
|
#HP
|
||||||
|
"+Oopenmp"
|
||||||
|
#IBM XL C/c++
|
||||||
|
"-qsmp"
|
||||||
|
#Portland Group
|
||||||
|
"-mp"
|
||||||
|
)
|
||||||
|
set(OpenMP_CXX_FLAG_CANDIDATES ${OpenMP_C_FLAG_CANDIDATES})
|
||||||
|
|
||||||
|
# sample openmp source code to test
|
||||||
|
set(OpenMP_C_TEST_SOURCE
|
||||||
|
"
|
||||||
|
#include <omp.h>
|
||||||
|
int main() {
|
||||||
|
#ifdef _OPENMP
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
breaks_on_purpose
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
")
|
||||||
|
# use the same source for CXX as C for now
|
||||||
|
set(OpenMP_CXX_TEST_SOURCE ${OpenMP_C_TEST_SOURCE})
|
||||||
|
# if these are set then do not try to find them again,
|
||||||
|
# by avoiding any try_compiles for the flags
|
||||||
|
if(DEFINED OpenMP_C_FLAGS AND DEFINED OpenMP_CXX_FLAGS)
|
||||||
|
set(OpenMP_C_FLAG_CANDIDATES)
|
||||||
|
set(OpenMP_CXX_FLAG_CANDIDATES)
|
||||||
|
endif(DEFINED OpenMP_C_FLAGS AND DEFINED OpenMP_CXX_FLAGS)
|
||||||
|
|
||||||
|
# check c compiler
|
||||||
|
foreach(FLAG ${OpenMP_C_FLAG_CANDIDATES})
|
||||||
|
set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
||||||
|
set(CMAKE_REQUIRED_FLAGS "${FLAG}")
|
||||||
|
set(OpenMP_C_FLAG_DETECTED)
|
||||||
|
message(STATUS "Try OpenMP C flag = [${FLAG}]")
|
||||||
|
check_c_source_compiles("${OpenMP_CXX_TEST_SOURCE}" OpenMP_C_FLAG_DETECTED)
|
||||||
|
set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
|
||||||
|
if(OpenMP_C_FLAG_DETECTED)
|
||||||
|
set(OpenMP_C_FLAGS_INTERNAL "${FLAG}")
|
||||||
|
break()
|
||||||
|
endif(OpenMP_C_FLAG_DETECTED)
|
||||||
|
endforeach(FLAG ${OpenMP_C_FLAG_CANDIDATES})
|
||||||
|
|
||||||
|
# check cxx compiler
|
||||||
|
foreach(FLAG ${OpenMP_CXX_FLAG_CANDIDATES})
|
||||||
|
set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
||||||
|
set(CMAKE_REQUIRED_FLAGS "${FLAG}")
|
||||||
|
set(OpenMP_CXX_FLAG_DETECTED)
|
||||||
|
message(STATUS "Try OpenMP CXX flag = [${FLAG}]")
|
||||||
|
check_cxx_source_compiles("${OpenMP_C_TEST_SOURCE}" OpenMP_CXX_FLAG_DETECTED)
|
||||||
|
set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
|
||||||
|
if(OpenMP_CXX_FLAG_DETECTED)
|
||||||
|
set(OpenMP_CXX_FLAGS_INTERNAL "${FLAG}")
|
||||||
|
break()
|
||||||
|
endif(OpenMP_CXX_FLAG_DETECTED)
|
||||||
|
endforeach(FLAG ${OpenMP_CXX_FLAG_CANDIDATES})
|
||||||
|
|
||||||
|
set(OpenMP_C_FLAGS "${OpenMP_C_FLAGS_INTERNAL}"
|
||||||
|
CACHE STRING "C compiler flags for OpenMP parallization")
|
||||||
|
|
||||||
|
set(OpenMP_CXX_FLAGS "${OpenMP_CXX_FLAGS_INTERNAL}"
|
||||||
|
CACHE STRING "C++ compiler flags for OpenMP parallization")
|
||||||
|
# handle the standard arguments for find_package
|
||||||
|
find_package_handle_standard_args(OpenMP DEFAULT_MSG
|
||||||
|
OpenMP_C_FLAGS OpenMP_CXX_FLAGS )
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
OpenMP_C_FLAGS
|
||||||
|
OpenMP_CXX_FLAGS
|
||||||
|
)
|
||||||
37
src/OpenMesh/Apps/CMakeLists.txt
Normal file
37
src/OpenMesh/Apps/CMakeLists.txt
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
# find needed packages
|
||||||
|
find_package (OpenGL)
|
||||||
|
find_package (GLUT)
|
||||||
|
find_package (GLEW)
|
||||||
|
|
||||||
|
acg_qt4 ()
|
||||||
|
|
||||||
|
add_subdirectory (Decimating/commandlineDecimater)
|
||||||
|
add_subdirectory (Smoothing)
|
||||||
|
add_subdirectory (Subdivider/commandlineSubdivider)
|
||||||
|
add_subdirectory (Subdivider/commandlineAdaptiveSubdivider)
|
||||||
|
add_subdirectory (mconvert)
|
||||||
|
|
||||||
|
# check for OpenGL, GLEW and GLUT as our required dependencies
|
||||||
|
if (QT4_FOUND AND OPENGL_FOUND AND GLEW_FOUND AND GLUT_FOUND)
|
||||||
|
add_subdirectory (Decimating/DecimaterGui)
|
||||||
|
add_subdirectory (QtViewer)
|
||||||
|
add_subdirectory (Subdivider/SubdividerGui)
|
||||||
|
else ()
|
||||||
|
if (NOT QT4_FOUND)
|
||||||
|
message ("QT 4 not found! Skipping some apps.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT OPENGL_FOUND)
|
||||||
|
message ("OpengGL not found! Skipping some apps.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT GLEW_FOUND)
|
||||||
|
message ("GLEW not found! Skipping some apps.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT GLUT_FOUND)
|
||||||
|
message ("GLUT not found! Skipping some apps.")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
48
src/OpenMesh/Apps/Decimating/DecimaterGui/CMakeLists.txt
Normal file
48
src/OpenMesh/Apps/Decimating/DecimaterGui/CMakeLists.txt
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName DecimaterGui)
|
||||||
|
|
||||||
|
# source code directories
|
||||||
|
set (directories
|
||||||
|
../../QtViewer
|
||||||
|
../
|
||||||
|
)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
acg_append_files (headers "*.hh" ${directories})
|
||||||
|
|
||||||
|
set (sources
|
||||||
|
../../QtViewer/QGLViewerWidget.cc
|
||||||
|
../../QtViewer/MeshViewerWidgetT.cc
|
||||||
|
../DecimaterViewerWidget.cc
|
||||||
|
../decimaterviewer.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
# remove template cc files from source file list
|
||||||
|
acg_drop_templates (sources)
|
||||||
|
|
||||||
|
# genereate uic and moc targets
|
||||||
|
acg_qt4_automoc (moc_targets ${headers})
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
acg_add_executable (${targetName} WIN32 ${sources} ${headers} ${moc_targets})
|
||||||
|
# link to qtmain library to get WinMain function for a non terminal app
|
||||||
|
target_link_libraries (${targetName} ${QT_QTMAIN_LIBRARY})
|
||||||
|
else ()
|
||||||
|
acg_add_executable (${targetName} ${sources} ${headers} ${moc_targets})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
${QT_LIBRARIES}
|
||||||
|
${OPENGL_LIBRARIES}
|
||||||
|
${GLEW_LIBRARY}
|
||||||
|
${GLUT_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName commandlineDecimater)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
set (sources
|
||||||
|
../decimater.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
acg_add_executable (${targetName} ${sources})
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
)
|
||||||
|
|
||||||
44
src/OpenMesh/Apps/QtViewer/CMakeLists.txt
Normal file
44
src/OpenMesh/Apps/QtViewer/CMakeLists.txt
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName QtViewer)
|
||||||
|
|
||||||
|
# source code directories
|
||||||
|
set (directories
|
||||||
|
.
|
||||||
|
)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
acg_append_files (headers "*.hh" ${directories})
|
||||||
|
acg_append_files (sources "*.cc" ${directories})
|
||||||
|
acg_append_files (ui "*.ui" ${directories})
|
||||||
|
|
||||||
|
# remove template cc files from source file list
|
||||||
|
acg_drop_templates (sources)
|
||||||
|
|
||||||
|
# genereate uic and moc targets
|
||||||
|
acg_qt4_autouic (uic_targets ${ui})
|
||||||
|
acg_qt4_automoc (moc_targets ${headers})
|
||||||
|
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
acg_add_executable (${targetName} WIN32 ${uic_targets} ${sources} ${headers} ${moc_targets})
|
||||||
|
# link to qtmain library to get WinMain function for a non terminal app
|
||||||
|
target_link_libraries (${targetName} ${QT_QTMAIN_LIBRARY})
|
||||||
|
else ()
|
||||||
|
acg_add_executable (${targetName} ${uic_targets} ${sources} ${headers} ${moc_targets})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
${QT_LIBRARIES}
|
||||||
|
${OPENGL_LIBRARIES}
|
||||||
|
${GLEW_LIBRARY}
|
||||||
|
${GLUT_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
20
src/OpenMesh/Apps/Smoothing/CMakeLists.txt
Normal file
20
src/OpenMesh/Apps/Smoothing/CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName Smoothing)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
acg_append_files (headers "*.hh" .)
|
||||||
|
acg_append_files (sources "*.cc" .)
|
||||||
|
|
||||||
|
acg_add_executable (${targetName} ${headers} ${sources})
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
)
|
||||||
|
|
||||||
48
src/OpenMesh/Apps/Subdivider/SubdividerGui/CMakeLists.txt
Normal file
48
src/OpenMesh/Apps/Subdivider/SubdividerGui/CMakeLists.txt
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName SubdividerGui)
|
||||||
|
|
||||||
|
# source code directories
|
||||||
|
set (directories
|
||||||
|
../../QtViewer
|
||||||
|
../
|
||||||
|
)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
acg_append_files (headers "*.hh" ${directories})
|
||||||
|
|
||||||
|
set (sources
|
||||||
|
../../QtViewer/QGLViewerWidget.cc
|
||||||
|
../../QtViewer/MeshViewerWidgetT.cc
|
||||||
|
../SubdivideWidget.cc
|
||||||
|
../qtsubdivider.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
# remove template cc files from source file list
|
||||||
|
acg_drop_templates (sources)
|
||||||
|
|
||||||
|
# genereate uic and moc targets
|
||||||
|
acg_qt4_automoc (moc_targets ${headers})
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
acg_add_executable (${targetName} WIN32 ${sources} ${headers} ${moc_targets})
|
||||||
|
# link to qtmain library to get WinMain function for a non terminal app
|
||||||
|
target_link_libraries (${targetName} ${QT_QTMAIN_LIBRARY})
|
||||||
|
else ()
|
||||||
|
acg_add_executable (${targetName} ${sources} ${headers} ${moc_targets})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
${QT_LIBRARIES}
|
||||||
|
${OPENGL_LIBRARIES}
|
||||||
|
${GLEW_LIBRARY}
|
||||||
|
${GLUT_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName commandlineAdaptiveSubdivider)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
set (sources
|
||||||
|
../adaptive_subdivider.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
acg_add_executable (${targetName} ${sources})
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
)
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName commandlineSubdivider)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
set (sources
|
||||||
|
../subdivider.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
acg_add_executable (${targetName} ${sources})
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
)
|
||||||
|
|
||||||
20
src/OpenMesh/Apps/mconvert/CMakeLists.txt
Normal file
20
src/OpenMesh/Apps/mconvert/CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName mconvert)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
acg_append_files (headers "*.hh" .)
|
||||||
|
acg_append_files (sources "*.cc" .)
|
||||||
|
|
||||||
|
acg_add_executable (${targetName} ${headers} ${sources})
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
)
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
include (common)
|
include (ACGCommon)
|
||||||
|
|
||||||
include_directories (
|
include_directories (
|
||||||
../..
|
../..
|
||||||
@@ -21,20 +21,14 @@ set (directories
|
|||||||
)
|
)
|
||||||
|
|
||||||
# collect all header and source files
|
# collect all header and source files
|
||||||
append_files (headers "*.hh" ${directories})
|
acg_append_files (headers "*.hh" ${directories})
|
||||||
append_files (sources "*.cc" ${directories})
|
acg_append_files (sources "*.cc" ${directories})
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# OpenMesh has no dll exports so we have to build a static library on windows
|
# OpenMesh has no dll exports so we have to build a static library on windows
|
||||||
add_library (OpenMeshCore STATIC ${sources} ${headers})
|
acg_add_library (OpenMeshCore STATIC ${sources} ${headers})
|
||||||
else ()
|
else ()
|
||||||
add_library (OpenMeshCore SHARED ${sources} ${headers})
|
acg_add_library (OpenMeshCore SHARED ${sources} ${headers})
|
||||||
# no install on mac, because the whole bundle will be installed in the
|
|
||||||
# toplevel CMakeLists.txt
|
|
||||||
if (NOT APPLE)
|
|
||||||
install (TARGETS OpenMeshCore DESTINATION ${OPENFLIPPER_LIBDIR})
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# set common target properties defined in common.cmake
|
|
||||||
set_target_props (OpenMeshCore)
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include (common)
|
include (ACGCommon)
|
||||||
|
|
||||||
include_directories (
|
include_directories (
|
||||||
../..
|
../..
|
||||||
@@ -17,22 +17,15 @@ set (directories
|
|||||||
)
|
)
|
||||||
|
|
||||||
# collect all header and source files
|
# collect all header and source files
|
||||||
append_files (headers "*.hh" ${directories})
|
acg_append_files (headers "*.hh" ${directories})
|
||||||
append_files (sources "*.cc" ${directories})
|
acg_append_files (sources "*.cc" ${directories})
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# OpenMesh has no dll exports so we have to build a static library on windows
|
# OpenMesh has no dll exports so we have to build a static library on windows
|
||||||
add_library (OpenMeshTools STATIC ${sources} ${headers})
|
acg_add_library (OpenMeshTools STATIC ${sources} ${headers})
|
||||||
else ()
|
else ()
|
||||||
add_library (OpenMeshTools SHARED ${sources} ${headers})
|
acg_add_library (OpenMeshTools SHARED ${sources} ${headers})
|
||||||
# no install on mac, because the whole bundle will be installed in the
|
|
||||||
# toplevel CMakeLists.txt
|
|
||||||
if (NOT APPLE)
|
|
||||||
install (TARGETS OpenMeshTools DESTINATION ${OPENFLIPPER_LIBDIR})
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
target_link_libraries (OpenMeshTools OpenMeshCore)
|
target_link_libraries (OpenMeshTools OpenMeshCore)
|
||||||
|
|
||||||
# set common target properties defined in common.cmake
|
|
||||||
set_target_props (OpenMeshTools)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user