comparison src/CMakeLists.txt @ 73:0bf6872eb250

fix build kernel.dir
author anatofuz
date Wed, 31 Jul 2019 19:35:57 +0900
parents 1e1c6feb7d83
children 10d09cd9fad3
comparison
equal deleted inserted replaced
72:4051ad3e0958 73:0bf6872eb250
44 set(CMAKE_C_LINK_EXECUTABLE "${X_CMAKE_C_LINK_EXECUTABLE}") 44 set(CMAKE_C_LINK_EXECUTABLE "${X_CMAKE_C_LINK_EXECUTABLE}")
45 set( _OPTIONS_ARGS ) 45 set( _OPTIONS_ARGS )
46 set( _ONE_VALUE_ARGS TARGET ) 46 set( _ONE_VALUE_ARGS TARGET )
47 set( _MULTI_VALUE_ARGS SOURCES ) 47 set( _MULTI_VALUE_ARGS SOURCES )
48 cmake_parse_arguments( _Gears "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} ) 48 cmake_parse_arguments( _Gears "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} )
49 set(CMAKE_KERNEL_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir")
50 49
51 set (_Gears_CBC_SOURCES) 50 set (_Gears_CBC_SOURCES)
52 set (_Gears_CSOURCES) 51 set (_Gears_CSOURCES)
53 foreach(i ${_Gears_SOURCES}) 52 foreach(i ${_Gears_SOURCES})
54 if (${i} MATCHES "\\.cbc") 53 if (${i} MATCHES "\\.cbc")
55 string(REGEX REPLACE "(.*).cbc" "c/\\1.c" j ${i}) 54 string(REGEX REPLACE "(.*).cbc" "c/\\1.c" j ${i})
56 add_custom_command ( 55 add_custom_command (
57 OUTPUT ${CMAKE_KERNEL_OUTPUT_DIR}/${j} 56 OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j}
58 DEPENDS ${i} 57 DEPENDS ${i}
59 COMMAND "perl" "${CMAKE_SOURCE_DIR}/gearsTools/generate_stub.pl" "-o" ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j} ${CMAKE_SOURCE_DIR}/${i} 58 COMMAND "cd" "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir" ";" "perl" "${CMAKE_SOURCE_DIR}/gearsTools/generate_stub.pl" "-o" ${j} ${CMAKE_SOURCE_DIR}/${i}
60 ) 59 )
61 list(APPEND _Gears_CBC_SOURCES "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j}") 60 list(APPEND _Gears_CBC_SOURCES "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j}")
62 #list(APPEND _Gears_CBC_SOURCES ${j}) 61 #list(APPEND _Gears_CBC_SOURCES ${j})
63 elseif (${i} MATCHES "\\.cu") 62 elseif (${i} MATCHES "\\.cu")
64 string(REGEX REPLACE "(.*).cu" "c/\\1.ptx" j ${i}) 63 string(REGEX REPLACE "(.*).cu" "c/\\1.ptx" j ${i})
65 add_custom_command ( 64 add_custom_command (
66 OUTPUT ${CMAKE_KERNEL_OUTPUT_DIR}/${j} 65 OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j}
67 DEPENDS ${i} 66 DEPENDS ${i}
68 COMMAND nvcc ${NVCCFLAG} -c -ptx -o ${j} ${i} 67 COMMAND nvcc ${NVCCFLAG} -c -ptx -o ${j} ${i}
69 ) 68 )
70 list(APPEND _Gears_CBC_SOURCES ${j}) 69 list(APPEND _Gears_CBC_SOURCES ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j})
71 else() 70 else()
72 set(j ${i}) 71 set(j ${i})
73 #list(APPEND _Gears_CSOURCES "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/${j}") 72 #list(APPEND _Gears_CSOURCES "${CMAKE_BINARY_DIR}/${_Gears_TARGET}.dir/${j}")
74 list(APPEND _Gears_CSOURCES ${j}) 73 list(APPEND _Gears_CSOURCES ${j})
75 endif() 74 endif()
76 endforeach(i) 75 endforeach(i)
77 76
78 #target_link_libraries(syslib) 77 #target_link_libraries(syslib)
79 file(COPY "${CMAKE_SOURCE_DIR}/context.h" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) 78 file(COPY "${CMAKE_SOURCE_DIR}/context.h" DESTINATION ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir)
80 add_custom_command ( 79 add_custom_command (
81 OUTPUT ${CMAKE_KERNEL_OUTPUT_DIR}/c/${_Gears_TARGET}-context.c 80 OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/c/${_Gears_TARGET}-context.c
82 DEPENDS ${_Gears_CBC_SOURCES} fs.img initcode 81 DEPENDS ${_Gears_CBC_SOURCES} fs.img initcode
83 COMMAND "perl" "${CMAKE_SOURCE_DIR}/gearsTools/generate_context.pl" "-o" ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET} ${_Gears_CBC_SOURCES} 82 COMMAND "cd" "CMakeFiles/kernel.dir" ";" "perl" "${CMAKE_SOURCE_DIR}/gearsTools/generate_context.pl" "-o" ${_Gears_TARGET} ${_Gears_CBC_SOURCES}
84 ) 83 )
85 add_executable(${_Gears_TARGET} ${_Gears_CBC_SOURCES} ${_Gears_CSOURCES} ${CMAKE_KERNEL_OUTPUT_DIR}/c/${_Gears_TARGET}-context.c ) 84 add_executable(${_Gears_TARGET} ${_Gears_CBC_SOURCES} ${_Gears_CSOURCES} ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${_Gears_TARGET}.dir/c/${_Gears_TARGET}-context.c )
86 # target_link_libraries(${_Gears_TARGET} m pthread) 85 # target_link_libraries(${_Gears_TARGET} m pthread)
87 endmacro() 86 endmacro()
88 87
89 88
90 set(CMAKE_C_FLAGS "${INITOCDE_CFLAGS}") 89 set(CMAKE_C_FLAGS "${INITOCDE_CFLAGS}")