Skip to content

Commit 83e18cc

Browse files
committed
update cmake from latest internal repo
1 parent 4996b97 commit 83e18cc

File tree

1 file changed

+66
-34
lines changed

1 file changed

+66
-34
lines changed

CMakeLists.txt

+66-34
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
22
project(hiprt)
33

44
# Options
5-
option(BAKE_KERNEL "enable the use of encrypted and baked kernels" OFF)
5+
option(BAKE_KERNEL "Enable the use of encrypted and baked kernels" OFF)
66
option(BITCODE "Enable bitcode linking" OFF)
77
option(PRECOMPILE "Precompile kernels" OFF)
88
option(HIPRTEW "Use hiprtew" OFF)
@@ -31,6 +31,9 @@ add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
3131

3232

3333

34+
35+
36+
3437
# Functions
3538
function(copy_dir src_dir dst_dir pattern)
3639
file(GLOB_RECURSE files "${src_dir}/${pattern}")
@@ -252,8 +255,13 @@ endif()
252255
add_definitions(-D__USE_HIP__)
253256

254257

258+
# this define is to identify that we are on the public repository of HIPRT.
259+
# it helps AMD to maintain both a public and a private repo for experimentation.
260+
add_definitions(-DHIPRT_PUBLIC_REPO)
261+
262+
255263
# Enable CUDA if possible
256-
include(${CMAKE_SOURCE_DIR}/contrib/Orochi/Orochi/enable_cuew.cmake)
264+
include(${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/Orochi/enable_cuew.cmake)
257265

258266

259267

@@ -282,8 +290,8 @@ endif()
282290

283291
# Write version info
284292
set(version_str_ "UNDEF")
285-
write_version_info("${CMAKE_SOURCE_DIR}/hiprt/hiprt.h.in" "${CMAKE_SOURCE_DIR}/hiprt/hiprt.h" "${CMAKE_SOURCE_DIR}/version.txt" version_str_)
286-
write_version_info("${CMAKE_SOURCE_DIR}/hiprt/hiprtew.h.in" "${CMAKE_SOURCE_DIR}/hiprt/hiprtew.h" "${CMAKE_SOURCE_DIR}/version.txt" version_str_)
293+
write_version_info("${CMAKE_CURRENT_SOURCE_DIR}/hiprt/hiprt.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/hiprt.h" "${CMAKE_CURRENT_SOURCE_DIR}/version.txt" version_str_)
294+
write_version_info("${CMAKE_CURRENT_SOURCE_DIR}/hiprt/hiprtew.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/hiprtew.h" "${CMAKE_CURRENT_SOURCE_DIR}/version.txt" version_str_)
287295

288296

289297
set(HIPRT_NAME "hiprt${version_str_}")
@@ -321,13 +329,13 @@ endif()
321329
if(PRECOMPILE)
322330
execute_process(
323331
COMMAND python compile.py --nvidia --hipSdkPath ${HIP_PATH}
324-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/scripts/bitcodes
332+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts/bitcodes
325333
)
326334

327335
if(NOT NO_UNITTEST)
328336
execute_process(
329337
COMMAND python precompile_bitcode.py --nvidia --hipSdkPath ${HIP_PATH}
330-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/scripts/bitcodes
338+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts/bitcodes
331339
)
332340
endif()
333341

@@ -337,32 +345,46 @@ endif()
337345
if(BAKE_KERNEL OR GENERATE_BAKE_KERNEL)
338346
message(">> BakeKernel Executed")
339347
if(WIN32)
340-
execute_process(COMMAND mkdir -p ${CMAKE_SOURCE_DIR}/hiprt/cache)
341-
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/tools/bakeKernel.bat)
348+
execute_process(
349+
COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/hiprt/cache
350+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
351+
)
352+
execute_process(
353+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools/bakeKernel.bat
354+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
355+
)
342356
else()
343-
execute_process(COMMAND mkdir -p ${CMAKE_SOURCE_DIR}/hiprt/cache)
344-
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/tools/bakeKernel.sh)
357+
execute_process(
358+
COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/hiprt/cache
359+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
360+
)
361+
execute_process(
362+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools/bakeKernel.sh
363+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
364+
)
345365
endif()
346366

347-
if(BAKE_KERNEL)
348-
target_compile_definitions(${HIPRT_NAME} PRIVATE HIPRT_LOAD_FROM_STRING ORO_PP_LOAD_FROM_STRING)
349-
endif()
350-
351367
target_compile_definitions(${HIPRT_NAME} PRIVATE HIPRT_BAKE_KERNEL_GENERATED)
352-
368+
369+
endif()
370+
371+
if(BAKE_KERNEL)
372+
target_compile_definitions(${HIPRT_NAME} PRIVATE HIPRT_LOAD_FROM_STRING ORO_PP_LOAD_FROM_STRING)
353373
endif()
354374

375+
376+
355377
if(WIN32)
356378
target_link_libraries(${HIPRT_NAME} version)
357379
endif()
358380

359381

360-
target_include_directories(${HIPRT_NAME} PRIVATE ${CMAKE_SOURCE_DIR})
361-
target_include_directories(${HIPRT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/contrib/Orochi)
382+
target_include_directories(${HIPRT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
383+
target_include_directories(${HIPRT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi)
362384

363-
file(GLOB_RECURSE hiprt_sources "${CMAKE_SOURCE_DIR}/hiprt/*.h" "${CMAKE_SOURCE_DIR}/hiprt/*.cpp" "${CMAKE_SOURCE_DIR}/hiprt/*.inl")
385+
file(GLOB_RECURSE hiprt_sources "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/*.inl")
364386
list(FILTER hiprt_sources EXCLUDE REGEX "hiprt/bitcodes/.*")
365-
file(GLOB_RECURSE orochi_sources "${CMAKE_SOURCE_DIR}/contrib/Orochi/Orochi/*.h" "${CMAKE_SOURCE_DIR}/contrib/Orochi/Orochi/*.cpp" "${CMAKE_SOURCE_DIR}/contrib/Orochi/contrib/cuew/*.h" "${CMAKE_SOURCE_DIR}/contrib/Orochi/contrib/cuew/*.cpp" "${CMAKE_SOURCE_DIR}/contrib/Orochi/contrib/hipew/*.h" "${CMAKE_SOURCE_DIR}/contrib/Orochi/contrib/hipew/*.cpp" "${CMAKE_SOURCE_DIR}/contrib/Orochi/ParallelPrimitives/*.h" "${CMAKE_SOURCE_DIR}/contrib/Orochi/ParallelPrimitives/*.cpp")
387+
file(GLOB_RECURSE orochi_sources "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/Orochi/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/Orochi/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/contrib/cuew/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/contrib/cuew/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/contrib/hipew/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/contrib/hipew/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/ParallelPrimitives/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/ParallelPrimitives/*.cpp")
366388
target_sources(${HIPRT_NAME} PRIVATE ${hiprt_sources} ${orochi_sources})
367389

368390

@@ -375,10 +397,20 @@ target_sources(${HIPRT_NAME} PRIVATE ${hiprt_sources} ${orochi_sources})
375397
install(TARGETS ${HIPRT_NAME} DESTINATION bin)
376398

377399
# add header files
378-
file(GLOB HIPRT_HEADERS "${CMAKE_SOURCE_DIR}/hiprt/*.h")
400+
file(GLOB HIPRT_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/*.h")
379401
install(FILES ${HIPRT_HEADERS}
380402
DESTINATION include/hiprt)
381403

404+
# add header files from implementation folder
405+
file(GLOB HIPRT_IMPL_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/hiprt/impl/*.h")
406+
install(FILES ${HIPRT_IMPL_HEADERS}
407+
DESTINATION include/hiprt/impl)
408+
409+
# add some header files from Orochi
410+
file(GLOB HIPRT_ORO_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/ParallelPrimitives/*.h")
411+
install(FILES ${HIPRT_ORO_HEADERS}
412+
DESTINATION include/contrib/Orochi/ParallelPrimitives)
413+
382414
# add hipfb files
383415
file(GLOB HIPRT_HIPFB_FILES "${BASE_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/*.hipfb")
384416
install(FILES ${HIPRT_HIPFB_FILES}
@@ -407,40 +439,40 @@ if(NOT NO_UNITTEST)
407439
endif()
408440

409441

410-
target_include_directories(unittest PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/contrib/Orochi)
442+
target_include_directories(unittest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi)
411443
target_link_libraries(unittest PRIVATE ${HIPRT_NAME})
412444

413445
if(UNIX)
414446
target_link_libraries(unittest PRIVATE pthread dl)
415447
endif()
416448

417-
file(GLOB_RECURSE unittest_sources "${CMAKE_SOURCE_DIR}/test/hiprtT*.h" "${CMAKE_SOURCE_DIR}/test/hiprtT*.cpp" "${CMAKE_SOURCE_DIR}/test/shared.h" "${CMAKE_SOURCE_DIR}/test/main.cpp" "${CMAKE_SOURCE_DIR}/test/CornellBox.h" "${CMAKE_SOURCE_DIR}/test/kernels/*.h" "${CMAKE_SOURCE_DIR}/contrib/gtest-1.6.0/gtest-all.cc")
449+
file(GLOB_RECURSE unittest_sources "${CMAKE_CURRENT_SOURCE_DIR}/test/hiprtT*.h" "${CMAKE_CURRENT_SOURCE_DIR}/test/hiprtT*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/test/shared.h" "${CMAKE_CURRENT_SOURCE_DIR}/test/main.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/test/CornellBox.h" "${CMAKE_CURRENT_SOURCE_DIR}/test/kernels/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/gtest-1.6.0/gtest-all.cc")
418450

419451

420452
target_sources(unittest PRIVATE ${unittest_sources} ${orochi_sources})
421453

422-
target_include_directories(unittest PRIVATE ${CMAKE_SOURCE_DIR}/contrib/gtest-1.6.0 ${CMAKE_SOURCE_DIR}/contrib/embree/include)
454+
target_include_directories(unittest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/gtest-1.6.0 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/embree/include)
423455

424456

425457
if(WIN32)
426458

427459
# Use target_link_directories to specify additional library directories
428-
target_link_directories(unittest PRIVATE ${CMAKE_SOURCE_DIR}/contrib/embree/win)
429-
target_link_directories(unittest PRIVATE ${CMAKE_SOURCE_DIR}/contrib/bin/win64)
460+
target_link_directories(unittest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/embree/win)
461+
target_link_directories(unittest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/bin/win64)
430462

431-
copy_dir(${CMAKE_SOURCE_DIR}/contrib/embree/win ${CMAKE_SOURCE_DIR}/dist/bin/Release "*.dll")
432-
copy_dir(${CMAKE_SOURCE_DIR}/contrib/embree/win ${CMAKE_SOURCE_DIR}/dist/bin/Debug "*.dll")
433-
copy_dir(${CMAKE_SOURCE_DIR}/contrib/Orochi/contrib/bin/win64 ${CMAKE_SOURCE_DIR}/dist/bin/Release "*.dll")
434-
copy_dir(${CMAKE_SOURCE_DIR}/contrib/Orochi/contrib/bin/win64 ${CMAKE_SOURCE_DIR}/dist/bin/Debug "*.dll")
463+
copy_dir(${CMAKE_CURRENT_SOURCE_DIR}/contrib/embree/win ${CMAKE_CURRENT_SOURCE_DIR}/dist/bin/Release "*.dll")
464+
copy_dir(${CMAKE_CURRENT_SOURCE_DIR}/contrib/embree/win ${CMAKE_CURRENT_SOURCE_DIR}/dist/bin/Debug "*.dll")
465+
copy_dir(${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/contrib/bin/win64 ${CMAKE_CURRENT_SOURCE_DIR}/dist/bin/Release "*.dll")
466+
copy_dir(${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi/contrib/bin/win64 ${CMAKE_CURRENT_SOURCE_DIR}/dist/bin/Debug "*.dll")
435467

436468
# Explicitly link libraries from contrib/embree/win and contrib/bin/win64
437-
target_link_libraries(unittest PRIVATE ${CMAKE_SOURCE_DIR}/contrib/embree/win/embree4.lib)
469+
target_link_libraries(unittest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/embree/win/embree4.lib)
438470

439471
endif()
440472

441473

442474
if(UNIX)
443-
target_link_directories(unittest PRIVATE ${CMAKE_SOURCE_DIR}/contrib/embree/linux)
475+
target_link_directories(unittest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/embree/linux)
444476
endif()
445477

446478
target_link_libraries(unittest PRIVATE embree4 tbb)
@@ -458,15 +490,15 @@ if(HIPRTEW)
458490
target_link_libraries(hiprtewtest PRIVATE version)
459491
endif()
460492

461-
target_include_directories(hiprtewtest PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/contrib/Orochi)
493+
target_include_directories(hiprtewtest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Orochi)
462494
if(UNIX)
463495
target_link_libraries(hiprtewtest PRIVATE pthread dl)
464496
endif()
465497

466-
file(GLOB_RECURSE hiprtewtest_sources "${CMAKE_SOURCE_DIR}/test/hiprtewTest.h" "${CMAKE_SOURCE_DIR}/test/hiprtewTest.cpp" "${CMAKE_SOURCE_DIR}/contrib/gtest-1.6.0/gtest-all.cc")
498+
file(GLOB_RECURSE hiprtewtest_sources "${CMAKE_CURRENT_SOURCE_DIR}/test/hiprtewTest.h" "${CMAKE_CURRENT_SOURCE_DIR}/test/hiprtewTest.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/gtest-1.6.0/gtest-all.cc")
467499
target_sources(hiprtewtest PRIVATE ${hiprtewtest_sources} ${orochi_sources})
468500

469-
target_include_directories(hiprtewtest PRIVATE ${CMAKE_SOURCE_DIR}/contrib/gtest-1.6.0)
501+
target_include_directories(hiprtewtest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/contrib/gtest-1.6.0)
470502

471503
target_compile_definitions(hiprtewtest PRIVATE GTEST_HAS_TR1_TUPLE=0)
472504
endif()

0 commit comments

Comments
 (0)