CMakeLists.txt 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. include( corefiles.cmake)
  2. include( progfiles.cmake)
  3. include( testfiles.cmake)
  4. #message(STATUS "nice_core_hdr:${NICE_CORE_HDR}")
  5. ADD_LIBRARY(nice_core ${NICE_BUILD_LIBS_STATIC_SHARED} ${NICE_CORE_HDR} ${NICE_CORE_SRC})
  6. TARGET_LINK_LIBRARIES(nice_core ${Boost_LIBRARIES} ${OPENGL_LIBRARY} ${GLUT_LIBRARY} ${QT_LIBRARIES})
  7. SET_PROPERTY(TARGET nice_core PROPERTY FOLDER "library")
  8. INSTALL(TARGETS nice_core DESTINATION lib)
  9. if(BUILD_CORE_PROGS)
  10. message(STATUS "building progs:")
  11. foreach(__progcpp ${NICE_PROGFILES_SRC})
  12. get_filename_component(__progname ${__progcpp} NAME_WE )
  13. message(STATUS "progname: ${__progname} ${__progcpp}")
  14. ADD_EXECUTABLE( ${__progname} ${__progcpp})
  15. TARGET_LINK_LIBRARIES(${__progname} nice_core)
  16. INSTALL(TARGETS ${__progname} DESTINATION bin)
  17. SET_PROPERTY(TARGET ${__progname} PROPERTY FOLDER "programs")
  18. endforeach()
  19. endif()
  20. if(BUILD_CORE_TESTS)
  21. INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
  22. message(STATUS "building tests:")
  23. foreach(__testcpp ${NICE_TESTFILES_SRC})
  24. get_filename_component(__testname ${__testcpp} NAME_WE )
  25. message(STATUS "unittest: ${__testname} ${__testcpp}")
  26. ADD_EXECUTABLE( ${__testname} ../templates/cppUnitTestRunner.cpp ${__testcpp})
  27. TARGET_LINK_LIBRARIES(${__testname} nice_core ${CPPUNIT_LIBRARIES} )
  28. INSTALL(TARGETS ${__testname} DESTINATION tests)
  29. SET_PROPERTY(TARGET ${__testname} PROPERTY FOLDER "unittests")
  30. ADD_TEST(${__testname} ${__testname})
  31. endforeach()
  32. endif()
  33. #####
  34. set(the_module "nice_core")
  35. if(ENABLE_SOLUTION_FOLDERS)
  36. set_target_properties(${the_module} PROPERTIES FOLDER "modules")
  37. endif()
  38. set_target_properties(${the_module} PROPERTIES
  39. OUTPUT_NAME "${the_module}${OPENCV_DLLVERSION}"
  40. DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
  41. ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}
  42. RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
  43. INSTALL_NAME_DIR lib
  44. )
  45. if(BUILD_SHARED_LIBS)
  46. if(MSVC)
  47. set_target_properties(${the_module} PROPERTIES DEFINE_SYMBOL CVAPI_EXPORTS)
  48. else()
  49. add_definitions(-DCVAPI_EXPORTS)
  50. endif()
  51. endif()
  52. if(MSVC)
  53. if(CMAKE_CROSSCOMPILING)
  54. set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:secchk")
  55. endif()
  56. set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:libc /DEBUG")
  57. endif()
  58. install(TARGETS ${the_module}
  59. RUNTIME DESTINATION bin COMPONENT main
  60. LIBRARY DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
  61. ARCHIVE DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
  62. )
  63. # # only "public" headers need to be installed
  64. # if(OPENCV_MODULE_${the_module}_HEADERS AND ";${OPENCV_MODULES_PUBLIC};" MATCHES ";${the_module};")
  65. # foreach(hdr ${OPENCV_MODULE_${the_module}_HEADERS})
  66. # string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}")
  67. # if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$")
  68. # install(FILES ${hdr} DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT main)
  69. # endif()
  70. # endforeach()
  71. # endif()
  72. #############################################################
  73. # set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  74. # ocv_glob_modules(${NICE_CURR_DIR})
  75. #ocv_add_module(core)
  76. #ocv_module_include_directories()
  77. #ocv_glob_module_sources()
  78. #ocv_create_module()
  79. # set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  80. # ocv_glob_modules(${NICE_CURR_DIR})
  81. # ADD_EXECUTABLE(testConfig ./basics/progs/testConfig.cpp)
  82. # ADD_EXECUTABLE(testMemoryUsage ./basics/progs/testMemoryUsage.cpp)
  83. # TARGET_LINK_LIBRARIES(testConfig libnice_core_basics libnice_core_vector)
  84. # TARGET_LINK_LIBRARIES(testMemoryUsage libnice_core_basics)
  85. # INSTALL(TARGETS testConfig DESTINATION bin)
  86. # INSTALL(TARGETS testMemoryUsage DESTINATION bin)
  87. ###
  88. #CONFIGURE_FILE(
  89. # "CMakeDefinesConfig.h.in"
  90. # "${PROJECT_BINARY_DIR}/CMakeDefinesConfig.h"
  91. #)
  92. #include_directories("${PROJECT_BINARY_DIR}")