Warning, /sdk/codevis/lvtclp/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 include_directories(SYSTEM ${LLVM_INCLUDE_DIR}) 0002 include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/thirdparty) 0003 0004 find_package(Python COMPONENTS Development REQUIRED) 0005 find_package(Threads REQUIRED) 0006 0007 ADD_DEFINITIONS(-DQT_NO_KEYWORDS) 0008 0009 LINK_DIRECTORIES( 0010 ${CLANG_LIBRARY_DIRS} 0011 ) 0012 0013 # Windows does not support yet the LLVM libraries as a shared library. 0014 # Specify all of them by hand. =/ 0015 if (USE_LLVM_STATIC_LIBS OR MSVC) 0016 SET(CLANG_EXTRA_LIBRARIES 0017 clangIndex 0018 clangFormat 0019 clangTooling 0020 clangToolingInclusions 0021 clangToolingCore 0022 clangFrontend 0023 clangParse 0024 clangSerialization 0025 clangSema 0026 clangAST 0027 clangLex 0028 clangDriver 0029 clangBasic 0030 ) 0031 elseif(APPLE) 0032 # Craft - The tool we use to manage builds on windows and apple 0033 # probably has a bug on the llvm recipe that makes libLLVM.dylib 0034 # not useful. I'v discovered that by linking to libLLVMSupport we at least 0035 # have a successfull build. 0036 SET(CLANG_EXTRA_LIBRARIES 0037 clang-cpp 0038 LLVMSupport 0039 ) 0040 0041 else() 0042 SET(CLANG_EXTRA_LIBRARIES 0043 clang-cpp 0044 LLVM 0045 ) 0046 endif() 0047 0048 AddTargetLibrary( 0049 LIBRARY_NAME 0050 lvtclp 0051 SOURCES 0052 ct_lvtclp_clputil.cpp 0053 ct_lvtclp_compilerutil.cpp 0054 ct_lvtclp_componentutil.cpp 0055 ct_lvtclp_diagnostic_consumer.cpp 0056 ct_lvtclp_filesystemscanner.cpp 0057 ct_lvtclp_fileutil.cpp 0058 ct_lvtclp_headercallbacks.cpp 0059 ct_lvtclp_logicaldepscanner.cpp 0060 ct_lvtclp_logicaldepvisitor.cpp 0061 ct_lvtclp_logicalpostprocessutil.cpp 0062 ct_lvtclp_physicaldepscanner.cpp 0063 ct_lvtclp_staticfnhandler.cpp 0064 ct_lvtclp_cpp_tool.cpp 0065 ct_lvtclp_toolexecutor.cpp 0066 ct_lvtclp_visitlog.cpp 0067 HEADERS 0068 ct_lvtclp_clputil.h 0069 ct_lvtclp_compilerutil.h 0070 ct_lvtclp_componentutil.h 0071 ct_lvtclp_filesystemscanner.h 0072 ct_lvtclp_fileutil.h 0073 ct_lvtclp_headercallbacks.h 0074 ct_lvtclp_logicaldepscanner.h 0075 ct_lvtclp_logicaldepvisitor.h 0076 ct_lvtclp_logicalpostprocessutil.h 0077 ct_lvtclp_physicaldepscanner.h 0078 ct_lvtclp_staticfnhandler.h 0079 ct_lvtclp_toolexecutor.h 0080 ct_lvtclp_visitlog.h 0081 QT_HEADERS 0082 ct_lvtclp_cpp_tool.h 0083 LIBRARIES 0084 Codethink::lvtmdb 0085 Codethink::lvtprj 0086 Codethink::lvtshr 0087 ${CLANG_EXTRA_LIBRARIES} 0088 ${SYSTEM_EXTRA_LIBRARIES} 0089 Qt${QT_MAJOR_VERSION}::Core 0090 Python::Python 0091 ) 0092 if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") 0093 set_target_properties(lvtclp 0094 PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} ${SKIP_CLANG_WARNINGS}" 0095 ) 0096 endif() 0097 0098 # add_lvtclp_exec( 0099 # NAME exec_name 0100 # SOURCES foo.cpp bar.cpp) 0101 function(add_lvtclp_exec) 0102 set(options NONE) 0103 set(oneValueArgs NAME) 0104 set(multiValueArgs SOURCES LIBRARIES) 0105 cmake_parse_arguments(clp "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) 0106 0107 add_executable(${clp_NAME} ${clp_SOURCES}) 0108 0109 if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") 0110 set_target_properties(${clp_NAME} 0111 PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} ${SKIP_CLANG_WARNINGS}") 0112 endif() 0113 0114 target_link_libraries(${clp_NAME} 0115 Codethink::lvtclp 0116 Codethink::lvtshr 0117 ${clp_LIBRARIES} 0118 ) 0119 endfunction() 0120 0121 if (ENABLE_FORTRAN_SCANNER) 0122 set(CTFortranLibsIfAvailable "lvtclp_fortran") 0123 endif() 0124 0125 add_lvtclp_exec( 0126 NAME codevis_create_codebase_db 0127 SOURCES ct_lvtclp_create_codebase_db.m.cpp 0128 LIBRARIES Qt${QT_MAJOR_VERSION}::Core ${CTFortranLibsIfAvailable}) 0129 0130 add_lvtclp_exec( 0131 NAME codevis_merge_databases 0132 SOURCES ct_lvtclp_merge_databases.m.cpp 0133 LIBRARIES Qt${QT_MAJOR_VERSION}::Core Threads::Threads 0134 ) 0135 0136 add_lvtclp_exec( 0137 NAME codevis_dump_database 0138 SOURCES ct_lvtclp_dumpdatabase.m.cpp) 0139 0140 if (COMPILE_TESTS) 0141 function(add_lvtclp_test) 0142 set(options NONE) 0143 set(oneValueArgs NAME) 0144 set(multiValueArgs SOURCES LIBRARIES) 0145 cmake_parse_arguments(clp "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) 0146 0147 add_lvtclp_exec(NAME ${clp_NAME} SOURCES ${clp_SOURCES} LIBRARIES lvtclp_test ${clp_LIBRARIES} lvttst) 0148 add_test(NAME ${clp_NAME} COMMAND ${clp_NAME}) 0149 endfunction() 0150 0151 add_library(lvtclp_test 0152 ct_lvtclp_testutil.cpp 0153 ct_lvtclp_testutil.h 0154 ) 0155 add_library(Codethink::lvtclp_test ALIAS lvtclp_test) 0156 target_link_libraries( 0157 lvtclp_test 0158 Codethink::lvtclp 0159 Catch2::Catch2 0160 ) 0161 0162 add_lvtclp_test( 0163 NAME test_ct_lvtclp_relationships 0164 SOURCES 0165 ct_lvtclp_testrelationships.t.cpp 0166 ) 0167 0168 add_lvtclp_test( 0169 NAME test_ct_lvtclp_compilerutil 0170 SOURCES 0171 ct_lvtclp_compilerutil.t.cpp 0172 ) 0173 0174 add_lvtclp_test( 0175 NAME test_ct_lvtclp_sourcefile 0176 SOURCES 0177 ct_lvtclp_testsourcefile.t.cpp 0178 ) 0179 0180 add_lvtclp_test( 0181 NAME test_ct_lvtclp_namespace 0182 SOURCES 0183 ct_lvtclp_testnamespace.t.cpp 0184 ) 0185 0186 add_lvtclp_test( 0187 NAME test_ct_lvtclp_function 0188 SOURCES 0189 ct_lvtclp_testfunction.t.cpp 0190 ) 0191 0192 add_lvtclp_test( 0193 NAME test_ct_lvtclp_physicalandtemplates 0194 SOURCES 0195 ct_lvtclp_testphysicalandtemplates.t.cpp 0196 ) 0197 add_lvtclp_test( 0198 NAME test_ct_lvtclp_udt 0199 SOURCES 0200 ct_lvtclp_testudt.t.cpp 0201 ) 0202 add_lvtclp_test( 0203 NAME test_ct_lvtclp_field 0204 SOURCES 0205 ct_lvtclp_testfield.t.cpp 0206 ) 0207 add_lvtclp_test( 0208 NAME test_ct_lvtclp_var 0209 SOURCES 0210 ct_lvtclp_testvar.t.cpp 0211 ) 0212 add_lvtclp_test( 0213 NAME test_ct_lvtclp_filesystemscanner 0214 SOURCES 0215 ct_lvtclp_filesystemscanner.t.cpp 0216 ) 0217 0218 add_lvtclp_test( 0219 NAME test_ct_lvtclp_fileupdatemgr_physical 0220 SOURCES 0221 ct_lvtclp_fileupdatemgr_physical.t.cpp 0222 ) 0223 0224 add_lvtclp_test( 0225 NAME test_ct_lvtclp_cpp_tool 0226 SOURCES 0227 ct_lvtclp_cpp_tool.t.cpp 0228 ) 0229 set_property(TEST test_ct_lvtclp_cpp_tool PROPERTY ENVIRONMENT "TEST_PRJ_PATH=${CMAKE_CURRENT_SOURCE_DIR}/systemtests/") 0230 0231 add_lvtclp_test( 0232 NAME test_ct_lvtclp_logicalpostprocessutil 0233 SOURCES 0234 ct_lvtclp_logicalpostprocessutil.t.cpp 0235 ) 0236 0237 add_lvtclp_test( 0238 NAME test_ct_lvtclp_clputil 0239 SOURCES 0240 ct_lvtclp_clputil.t.cpp 0241 ) 0242 0243 add_lvtclp_test( 0244 NAME test_ct_lvtclp_physicaldepscanner 0245 SOURCES 0246 ct_lvtclp_physicaldepscanner.t.cpp 0247 ) 0248 0249 add_lvtclp_test( 0250 NAME test_ct_lvtclp_logicaldepscanner 0251 SOURCES 0252 ct_lvtclp_logicaldepscanner.t.cpp 0253 ) 0254 endif() 0255 0256 if (CMAKE_COMPILER_IS_GNUCXX AND ENABLE_CODE_COVERAGE) 0257 setup_target_for_coverage_lcov( 0258 NAME lvtclp_coverage 0259 EXECUTABLE ../lvtclp/run_tests.sh 0260 EXCLUDE "/usr/*" 0261 "*.m.cpp" 0262 "*.t.cpp" 0263 "build*/*" 0264 "desktopapp/*" 0265 "lvtclr/*" 0266 "lvtgrps/*" 0267 "lvtmdl/*" 0268 "lvtqtc/*" 0269 "lvtqtd/*" 0270 "lvtqtw/*" 0271 "lvtshr/*" 0272 "lvtwdg/*" 0273 "submodules/*" 0274 ) 0275 endif() 0276 0277 SET(INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}) 0278 configure_file( 0279 parse_bde.sh.in 0280 ${CMAKE_BINARY_DIR}/parse_bde.sh 0281 ) 0282 0283 SET(${CMAKE_CURRENT_SOURCE_DIR}/systemtests/) 0284 0285 configure_file( 0286 autogen-test-variables.h.in 0287 ${CMAKE_CURRENT_BINARY_DIR}/autogen-test-variables.h 0288 ) 0289 0290 install(FILES 0291 ${CMAKE_BINARY_DIR}/parse_bde.sh 0292 PERMISSIONS 0293 OWNER_READ 0294 OWNER_WRITE 0295 OWNER_EXECUTE 0296 GROUP_READ 0297 GROUP_EXECUTE 0298 WORLD_READ 0299 WORLD_EXECUTE 0300 DESTINATION ${CMAKE_INSTALL_BINDIR} 0301 ) 0302 0303 if (NOT ${KDE_FRAMEWORKS_IS_OLD}) 0304 install(TARGETS codevis_merge_databases ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0305 install(TARGETS codevis_create_codebase_db ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0306 install(TARGETS codevis_dump_database ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0307 endif() 0308 0309 if (APPLE) 0310 # See desktopapp/CMakeLists.txt for copying the headers into the bundle 0311 # codevis.app/Contents/MacOS/codevis -> 0312 # codevis.app/Contents/Resources/include 0313 add_compile_definitions(CT_CLANG_HEADERS_RELATIVE_DIR="../Resources/include") 0314 elseif (WIN32) 0315 # Copying the headers into the build folder happens on llvm-build.ba 0316 # but we need to set this directory. 0317 # Winbdows threats directories without the first \ as relatives to the current folder. 0318 add_compile_definitions(CT_CLANG_HEADERS_RELATIVE_DIR="clang") 0319 endif() 0320 0321 if (ENABLE_FORTRAN_SCANNER) 0322 MESSAGE("Fortran support ENABLED") 0323 0324 # MLIR is required by flang 0325 find_package(MLIR REQUIRED PATHS "${LLVM_LIBRARY_DIR}/cmake/mlir/" NO_DEFAULT_PATH) 0326 find_package(Flang REQUIRED PATHS "${LLVM_LIBRARY_DIR}/cmake/flang/" NO_DEFAULT_PATH) 0327 0328 AddTargetLibrary( 0329 LIBRARY_NAME 0330 lvtclp_fortran 0331 SOURCES 0332 fortran/ct_lvtclp_logicalscanner.cpp 0333 fortran/ct_lvtclp_physicalscanner.cpp 0334 fortran/ct_lvtclp_fortran_tool.cpp 0335 fortran/ct_lvtclp_fortran_c_interop.cpp 0336 HEADERS 0337 fortran/ct_lvtclp_logicalscanner.h 0338 fortran/ct_lvtclp_physicalscanner.h 0339 fortran/ct_lvtclp_fortran_tool.h 0340 fortran/ct_lvtclp_fortran_c_interop.h 0341 LIBRARIES 0342 Codethink::lvtmdb 0343 flangFrontend 0344 flangFrontendTool 0345 ${SYSTEM_EXTRA_LIBRARIES} 0346 ) 0347 target_include_directories(lvtclp_fortran 0348 PRIVATE 0349 ${LLVM_INCLUDE_DIR} 0350 ) 0351 target_compile_definitions(lvtclp_fortran 0352 PRIVATE 0353 FLANG_LITTLE_ENDIAN=1 0354 ) 0355 0356 if (COMPILE_TESTS) 0357 function(add_lvtclp_fortran_test) 0358 set(options NONE) 0359 set(oneValueArgs NAME) 0360 set(multiValueArgs SOURCES LIBRARIES) 0361 cmake_parse_arguments(clp "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) 0362 0363 if (ENABLE_FORTRAN_SCANNER) 0364 set(CTFortranLibsIfAvailable "lvtclp_fortran") 0365 else() 0366 set(CTFortranLibsIfAvailable "") 0367 endif() 0368 add_lvtclp_exec(NAME ${clp_NAME} SOURCES ${clp_SOURCES} LIBRARIES lvtclp lvtclp_test lvttst ${CTFortranLibsIfAvailable}) 0369 add_test(NAME ${clp_NAME} COMMAND ${clp_NAME}) 0370 endfunction() 0371 0372 add_lvtclp_fortran_test( 0373 NAME test_ct_lvtclp_fortranscanner 0374 SOURCES 0375 fortran/ct_lvtclp_fortranscanner.t.cpp 0376 ) 0377 endif() 0378 else() 0379 MESSAGE("Fortran support DISABLED") 0380 endif()