CMakeLists.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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 bin)
  29. SET_PROPERTY(TARGET ${__testname} PROPERTY FOLDER "unittests")
  30. add_custom_command(TARGET ${__testname}
  31. POST_BUILD
  32. COMMAND "$<TARGET_FILE:${__testname}>"
  33. COMMENT "Unit Tests...")
  34. endforeach()
  35. endif()
  36. #####
  37. set(the_module "nice_core")
  38. if(ENABLE_SOLUTION_FOLDERS)
  39. set_target_properties(${the_module} PROPERTIES FOLDER "modules")
  40. endif()
  41. set_target_properties(${the_module} PROPERTIES
  42. OUTPUT_NAME "${the_module}${OPENCV_DLLVERSION}"
  43. DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
  44. ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}
  45. RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
  46. INSTALL_NAME_DIR lib
  47. )
  48. if(BUILD_SHARED_LIBS)
  49. if(MSVC)
  50. set_target_properties(${the_module} PROPERTIES DEFINE_SYMBOL CVAPI_EXPORTS)
  51. else()
  52. add_definitions(-DCVAPI_EXPORTS)
  53. endif()
  54. endif()
  55. if(MSVC)
  56. if(CMAKE_CROSSCOMPILING)
  57. set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:secchk")
  58. endif()
  59. set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:libc /DEBUG")
  60. endif()
  61. install(TARGETS ${the_module}
  62. RUNTIME DESTINATION bin COMPONENT main
  63. LIBRARY DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
  64. ARCHIVE DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
  65. )
  66. # # only "public" headers need to be installed
  67. # if(OPENCV_MODULE_${the_module}_HEADERS AND ";${OPENCV_MODULES_PUBLIC};" MATCHES ";${the_module};")
  68. # foreach(hdr ${OPENCV_MODULE_${the_module}_HEADERS})
  69. # string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}")
  70. # if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$")
  71. # install(FILES ${hdr} DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT main)
  72. # endif()
  73. # endforeach()
  74. # endif()
  75. #############################################################
  76. # set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  77. # ocv_glob_modules(${NICE_CURR_DIR})
  78. #ocv_add_module(core)
  79. #ocv_module_include_directories()
  80. #ocv_glob_module_sources()
  81. #ocv_create_module()
  82. # set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  83. # ocv_glob_modules(${NICE_CURR_DIR})
  84. # ADD_EXECUTABLE(testConfig ./basics/progs/testConfig.cpp)
  85. # ADD_EXECUTABLE(testMemoryUsage ./basics/progs/testMemoryUsage.cpp)
  86. # TARGET_LINK_LIBRARIES(testConfig libnice_core_basics libnice_core_vector)
  87. # TARGET_LINK_LIBRARIES(testMemoryUsage libnice_core_basics)
  88. # INSTALL(TARGETS testConfig DESTINATION bin)
  89. # INSTALL(TARGETS testMemoryUsage DESTINATION bin)
  90. ###
  91. #CONFIGURE_FILE(
  92. # "CMakeDefinesConfig.h.in"
  93. # "${PROJECT_BINARY_DIR}/CMakeDefinesConfig.h"
  94. #)
  95. #include_directories("${PROJECT_BINARY_DIR}")