Merge pull request #218 from saper/build-fixes
[envytools.git] / CMakeLists.txt
blob20abf1066ffe9c7201f59b9d65a207962474b41e
1 project(ENVYTOOLS C CXX)
2 cmake_minimum_required(VERSION 3.5)
3 enable_testing()
5 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu11")
6 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++11")
7 if (NOT CMAKE_BUILD_TYPE)
8         set(CMAKE_BUILD_TYPE "Debug")
9 endif (NOT CMAKE_BUILD_TYPE)
10 if (NOT DOC_PATH)
11         set(DOC_PATH "share/doc/envytools/")
12 endif (NOT DOC_PATH)
14 include_directories(include)
15 include_directories(${CMAKE_BINARY_DIR}/include-generated)
17 add_subdirectory(util)
18 add_subdirectory(cgen)
19 add_subdirectory(easm)
20 add_subdirectory(nva)
21 add_subdirectory(rnn)
22 add_subdirectory(envydis)
23 add_subdirectory(nvbios)
24 add_subdirectory(vstream)
25 add_subdirectory(vdpow)
26 add_subdirectory(nvhw)
27 add_subdirectory(hwtest)
28 add_subdirectory(demmt)
29 add_subdirectory(cupti_trace)
31 # Get the list of hwdoc files to install them in a flat directory
32 file(GLOB_RECURSE HWDOCS_SRC docs/*)
33 # Get the full patch to .gitignore and remove it from the list
34 file(GLOB GITIGNORE docs/.gitignore)
35 if(EXISTS ${GITIGNORE})
36         list(REMOVE_ITEM HWDOCS_SRC ${GITIGNORE})
37 endif()
39 set(RNNDB_BUILD_DIR ${CMAKE_BINARY_DIR}/rnndb-generated)
41 file(MAKE_DIRECTORY ${RNNDB_BUILD_DIR})
42 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/include-generated)
44 add_custom_command(OUTPUT ${RNNDB_BUILD_DIR}/nvchipsets.xml
45                 COMMAND python3
46                 ARGS -m ssot.gen_rnndb_nvchipsets ${RNNDB_BUILD_DIR}/nvchipsets.xml
47                 MAIN_DEPENDENCY ssot/gpu.py
48                 DEPENDS ssot/gen_rnndb_nvchipsets.py
49                 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
51 add_custom_target(rnndb-generated ALL DEPENDS ${RNNDB_BUILD_DIR}/nvchipsets.xml)
53 install(DIRECTORY include/ DESTINATION include/envytools)
54 install(DIRECTORY ${CMAKE_BINARY_DIR}/include-generated/ DESTINATION include/envytools)
55 install(DIRECTORY rnndb DESTINATION share PATTERN ".gitignore" EXCLUDE)
56 install(DIRECTORY ${RNNDB_BUILD_DIR}/ DESTINATION share/rnndb)
57 install(FILES ${HWDOCS_SRC} DESTINATION ${DOC_PATH}/hwdocs)
58 install(FILES README.rst DESTINATION ${DOC_PATH})
59 install(FILES docs/envydis/index.rst DESTINATION ${DOC_PATH} RENAME README-envydis)
61 message("")
62 message("-- Summary --")
63 message("")
64 message("General:")
65 message("       C-flags:        '${CMAKE_C_FLAGS}' (-DCMAKE_C_FLAGS=\"...\")")
66 message("       CXX-flags:      '${CMAKE_CXX_FLAGS}' (-DCMAKE_CXX_FLAGS=\"...\")")
67 message("       Build type:     ${CMAKE_BUILD_TYPE} (-DCMAKE_BUILD_TYPE=\"...\")")
68 message("")
69 message("Install:")
70 message("       Prefix:         '${CMAKE_INSTALL_PREFIX}' (-DCMAKE_INSTALL_PREFIX=...)")
71 message("       Doc path:       '${DOC_PATH}' (-DDOC_PATH=...)")
72 message("       Python:         '${NVAPY_PATH}' (-DNVAPY_PATH)")
73 message("")