# Minimum required version of CMake CMAKE_MINIMUM_REQUIRED(VERSION 2.8) if(COMMAND CMAKE_POLICY) CMAKE_POLICY(SET CMP0003 NEW) endif(COMMAND CMAKE_POLICY) # Set CMake project name project(Poly2Tri) # SET LIBNAME set(P2T_LIB_NAME p2t) # Testing option if(NOT DEFINED P2T_TESTS) set(P2T_TESTS OFF) endif(NOT DEFINED P2T_TESTS) OPTION(P2T_TESTS "Build libp2t tests" ${P2T_TESTS}) mark_as_advanced(P2T_TESTS) if(P2T_TESTS) include(CTest) enable_testing() endif(P2T_TESTS) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ) set(LIBP2T_PUBLIC_HDRS poly2tri/poly2tri.h poly2tri/common/shapes.h poly2tri/sweep/cdt.h ) set(LIBP2T_PRIVATE_HDRS poly2tri/common/utils.h poly2tri/sweep/advancing_front.h poly2tri/sweep/sweep.h poly2tri/sweep/sweep_context.h ) set(LIBP2T_SOURCES poly2tri/common/shapes.cc poly2tri/common/utils.cc poly2tri/sweep/advancing_front.cc poly2tri/sweep/cdt.cc poly2tri/sweep/sweep_context.cc poly2tri/sweep/sweep.cc ) set(LIBP2T_TEST_SOURCES testbed/main.cc ) if(NOT LIB_DIR) set(LIB_DIR lib) endif(NOT LIB_DIR) if(NOT BIN_DIR) set(BIN_DIR bin) endif(NOT BIN_DIR) if(MSVC) add_definitions("-DP2T_DLL_EXPORTS") endif(MSVC) add_definitions("-DP2T_NO_GLFW") add_library(${P2T_LIB_NAME} ${LIBP2T_SOURCES} ${LIBP2T_PUBLIC_HDRS} ${LIBP2T_PRIVATE_HDRS}) set_target_properties(${P2T_LIB_NAME} PROPERTIES VERSION 1.0.1 SOVERSION 1) if(MSVC) # msvc does not append 'lib' - do it here to have consistent name set_target_properties(${P2T_LIB_NAME} PROPERTIES PREFIX "lib") set_target_properties(${P2T_LIB_NAME} PROPERTIES IMPORT_PREFIX "lib") endif() target_link_libraries(${P2T_LIB_NAME} ${ZLIB_LIBRARY} ${M_LIBRARY}) install(TARGETS ${P2T_LIB_NAME} RUNTIME DESTINATION ${BIN_DIR} LIBRARY DESTINATION ${LIB_DIR} ARCHIVE DESTINATION ${LIB_DIR}) if(BUILD_STATIC_LIBS) set(P2T_LIB_NAME_STATIC ${P2T_LIB_NAME}_static) add_library(${P2T_LIB_NAME_STATIC} STATIC ${LIBP2T_SOURCES}) if(MSVC) # msvc does not append 'lib' - do it here to have consistent name set_target_properties(${P2T_LIB_NAME_STATIC} PROPERTIES PREFIX "lib") endif() if(BRLCAD_ENABLE_BRLCAD_LIBRARY AND ${CMAKE_PROJECT_NAME}_ZLIB_BUILD AND NOT ${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY) target_link_libraries(${P2T_LIB_NAME_STATIC} zlib-static ${M_LIBRARY}) else(BRLCAD_ENABLE_BRLCAD_LIBRARY AND ${CMAKE_PROJECT_NAME}_ZLIB_BUILD AND NOT ${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY) target_link_libraries(${P2T_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY}) endif(BRLCAD_ENABLE_BRLCAD_LIBRARY AND ${CMAKE_PROJECT_NAME}_ZLIB_BUILD AND NOT ${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY) install(TARGETS ${P2T_LIB_NAME_STATIC} RUNTIME DESTINATION ${BIN_DIR} LIBRARY DESTINATION ${LIB_DIR} ARCHIVE DESTINATION ${LIB_DIR}) endif(BUILD_STATIC_LIBS) if(WIN32) set_target_properties(${P2T_LIB_NAME} PROPERTIES DEFINE_SYMBOL P2T_BUILD_DLL) endif() ##if(P2T_TESTS) ## if(P2T_STATIC) ## add_executable(p2t-test ${LIBP2T_TEST_SOURCES}) ## target_link_libraries(p2t-test ${P2T_LIB_NAME_STATIC}) ## add_test(p2t-test ./p2t-test ${CMAKE_CURRENT_SOURCE_DIR}/DATA/bird.dat) ## else() ## add_executable(p2t-test ${LIBP2T_TEST_SOURCES}) ## target_link_libraries(p2t-test ${P2T_LIB_NAME}) ## add_test(p2t-test ./p2t-test ${CMAKE_CURRENT_SOURCE_DIR}/DATA/bird.dat) ## endif() ##endif() install(FILES poly2tri/poly2tri.h DESTINATION include/poly2tri) install(FILES poly2tri/common/shapes.h DESTINATION include/poly2tri/common) install(FILES poly2tri/sweep/cdt.h DESTINATION include/poly2tri/sweep) # Local Variables: # tab-width: 8 # mode: cmake # indent-tabs-mode: t # End: # ex: shiftwidth=2 tabstop=8