oops, you are right. Thanks for reporting this. The new version patch is attached.
On Mon, Jan 13, 2014 at 09:07:15AM +0000, Sun, Yi wrote: > Hi Zhigang, > > It seems you miss adding file utests/setenv.sh.in? > I failed to build this commit with following error info: > > CMake Error: File /home/OpenCL/beignet/utests/setenv.sh.in does not exist. > > Thanks > --Sun, Yi > > > -----Original Message----- > > From: [email protected] > > [mailto:[email protected]] On Behalf Of Zhigang Gong > > Sent: Thursday, January 9, 2014 6:15 PM > > To: [email protected] > > Cc: [email protected]; [email protected]; Gong, Zhigang > > Subject: [Beignet] [PATCH 2/2] Refine the method to find pch and pcm files. > > > > When compile user kernels, we need to find the precompiled header file and > > the precompiled module file. The previous implementation will find the build > > directory then find the system directory. > > > > This is not elegant when it is packaged to a distro. It doesn't need to > > search the > > build directory. So I change the default search path to the system > > directory only. > > And for the deveoper, I change the build script to set a proper environment > > variable and make the gbe bin generator and the utest could find the local > > pch > > files and pcm files firstly. > > > > The only change is now, after the build process. Before the user run the > > utests, > > it need to set up the environment firstly. Just invoke > > > > . utest/setenv.sh. > > > > Then everything should be the same as previous. This setenv.sh also set the > > OCL_KERNEL_PATH, so you don't need to set it manually now. > > > > This patch also update the document. > > > > Signed-off-by: Zhigang Gong <[email protected]> > > --- > > backend/CMakeLists.txt | 6 ++++++ > > backend/src/CMakeLists.txt | 8 ++++++-- > > backend/src/GBEConfig.h.in | 2 +- > > backend/src/backend/program.cpp | 22 +++++++++++++--------- > > docs/Beignet.mdwn | 20 ++++++++++++++++++-- > > src/CMakeLists.txt | 3 +-- > > utests/CMakeLists.txt | 11 ++++++++--- > > utests/utest.cpp | 2 -- > > 8 files changed, 53 insertions(+), 21 deletions(-) > > > > diff --git a/backend/CMakeLists.txt b/backend/CMakeLists.txt index > > 476c6f2..dd55a4a 100644 > > --- a/backend/CMakeLists.txt > > +++ b/backend/CMakeLists.txt > > @@ -91,9 +91,15 @@ elseif (COMPILER STREQUAL "ICC") > > set (CCMAKE_CXX_FLAGS_MINSIZEREL "-Os -DGBE_DEBUG=0") > > set (CMAKE_EXE_LINKER_FLAGS "") > > endif () > > + > > include_directories (${CMAKE_CURRENT_BINARY_DIR}) > > ############################################################## > > # Project source code > > ############################################################## > > add_subdirectory (src) > > +set(LOCAL_PCH_OBJECT_DIR ${LOCAL_PCH_OBJECT_DIR} PARENT_SCOPE) > > +set(LOCAL_PCM_OBJECT_DIR ${LOCAL_PCM_OBJECT_DIR} PARENT_SCOPE) > > set > > +(GBE_BIN_GENERATER > > + OCL_PCM_PATH=${LOCAL_PCM_OBJECT_DIR} > > OCL_PCH_PATH=${LOCAL_PCH_OBJECT_DIR} > > ${CMAKE_CURRENT_BINARY_DIR}/src/gbe_bin_generater > > + PARENT_SCOPE) > > > > diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt index > > d19cb50..d15e7b7 100644 > > --- a/backend/src/CMakeLists.txt > > +++ b/backend/src/CMakeLists.txt > > @@ -195,9 +195,13 @@ TARGET_LINK_LIBRARIES(gbe_bin_generater gbe) > > install (FILES ${ocl_blob_file} DESTINATION lib/beignet) install (FILES > > ${pch_object} DESTINATION lib/beignet) install (FILES > > ${CMAKE_CURRENT_BINARY_DIR}/${pcm_lib} DESTINATION lib/beignet) > > +# When build beignet itself, we need to export the local precompiled > > +header file and precompiled module # file to libcl and utests. > > +set (LOCAL_PCH_OBJECT_DIR > > +"${local_pch_object}:${beignet_install_path}/ocl_stdlib.h.pch" > > +PARENT_SCOPE) set (LOCAL_PCM_OBJECT_DIR > > +"${CMAKE_CURRENT_BINARY_DIR}/${pcm_lib}:${beignet_install_path}/${pc > > m_l > > +ib}" PARENT_SCOPE) > > > > -set (PCH_OBJECT_DIR > > "${local_pch_object};${beignet_install_path}/ocl_stdlib.h.pch") > > -set (PCM_LIB_DIR > > "${CMAKE_CURRENT_BINARY_DIR}/${pcm_lib};${beignet_install_path}/${pcm > > _lib}") > > +set (PCH_OBJECT_DIR "${beignet_install_path}/ocl_stdlib.h.pch") > > +set (PCM_OBJECT_DIR "${beignet_install_path}/${pcm_lib}") > > configure_file ( > > "GBEConfig.h.in" > > "GBEConfig.h" > > diff --git a/backend/src/GBEConfig.h.in b/backend/src/GBEConfig.h.in index > > 9920d25..5bc09b8 100644 > > --- a/backend/src/GBEConfig.h.in > > +++ b/backend/src/GBEConfig.h.in > > @@ -2,4 +2,4 @@ > > #define LIBGBE_VERSION_MAJOR @LIBGBE_VERSION_MAJOR@ #define > > LIBGBE_VERSION_MINOR @LIBGBE_VERSION_MINOR@ #define > > PCH_OBJECT_DIR "@PCH_OBJECT_DIR@" > > -#define PCM_LIB_DIR "@PCM_LIB_DIR@" > > +#define PCM_OBJECT_DIR "@PCM_OBJECT_DIR@" > > diff --git a/backend/src/backend/program.cpp > > b/backend/src/backend/program.cpp index 3ab1bc2..284a755 100644 > > --- a/backend/src/backend/program.cpp > > +++ b/backend/src/backend/program.cpp > > @@ -465,6 +465,9 @@ namespace gbe { > > } > > > > BVAR(OCL_OUTPUT_BUILD_LOG, false); > > + SVAR(OCL_PCH_PATH, PCH_OBJECT_DIR); > > + SVAR(OCL_PCM_PATH, PCM_OBJECT_DIR); > > + > > static bool buildModuleFromSource(const char* input, const char* output, > > std::string options, > > size_t stringSize, char *err, > > size_t *errSize) { > > // Arguments to pass to the clang frontend @@ -582,12 +585,13 @@ > > namespace gbe { > > // Create an action and make the compiler instance carry it out > > llvm::OwningPtr<clang::CodeGenAction> Act(new > > clang::EmitLLVMOnlyAction()); > > > > - std::string dirs = PCM_LIB_DIR, pcmLib; > > + std::string dirs = OCL_PCM_PATH; > > + std::string pcmFileName; > > std::istringstream idirs(dirs); > > bool findPcm = false; > > > > - while (getline(idirs, pcmLib, ';')) { > > - if(access(pcmLib.c_str(), R_OK) == 0) { > > + while (getline(idirs, pcmFileName, ':')) { > > + if(access(pcmFileName.c_str(), R_OK) == 0) { > > findPcm = true; > > break; > > } > > @@ -595,7 +599,7 @@ namespace gbe { > > > > GBE_ASSERT(findPcm && "Could not find pre compiled module > > library.\n"); > > > > - Clang.getCodeGenOpts().LinkBitcodeFile = pcmLib; > > + Clang.getCodeGenOpts().LinkBitcodeFile = pcmFileName; > > auto retVal = Clang.ExecuteAction(*Act); > > > > if (err != NULL) { > > @@ -651,7 +655,6 @@ namespace gbe { > > char clStr[L_tmpnam+1], llStr[L_tmpnam+1]; > > const std::string clName = std::string(tmpnam_r(clStr)) + ".cl"; /* > > unsafe! > > */ > > const std::string llName = std::string(tmpnam_r(llStr)) + ".ll"; /* > > unsafe! > > */ > > - std::string pchHeaderName; > > std::string clOpt; > > int optLevel = 1; > > > > @@ -730,11 +733,12 @@ namespace gbe { > > clOpt += options; > > } > > > > - std::string dirs = PCH_OBJECT_DIR; > > + std::string dirs = OCL_PCH_PATH; > > std::istringstream idirs(dirs); > > + std::string pchFileName; > > > > - while (getline(idirs, pchHeaderName, ';')) { > > - if(access(pchHeaderName.c_str(), R_OK) == 0) { > > + while (getline(idirs, pchFileName, ':')) { > > + if(access(pchFileName.c_str(), R_OK) == 0) { > > findPCH = true; > > break; > > } > > @@ -742,7 +746,7 @@ namespace gbe { > > > > if (usePCH && findPCH) { > > clOpt += " -include-pch "; > > - clOpt += pchHeaderName; > > + clOpt += pchFileName; > > clOpt += " "; > > } else > > fwrite(ocl_stdlib_str.c_str(), strlen(ocl_stdlib_str.c_str()), 1, > > clFile); diff > > --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index d05950f..e3b4b1b > > 100644 > > --- a/docs/Beignet.mdwn > > +++ b/docs/Beignet.mdwn > > @@ -70,8 +70,10 @@ this code also produces various tests to ensure the > > compiler and the run-time consistency. This small test framework uses a > > simple c++ registration system to register all the unit tests. > > > > -You need to set the variable `OCL_KERNEL_PATH` to locate the OCL kernels. > > They -are with the run-time in `./kernels`. > > +You need to call setenv.sh in the utests/ directory to set some > > +environment variables firstly as below: > > + > > +`> . setenv.sh` > > > > Then in `utests/`: > > > > @@ -83,6 +85,20 @@ will run all the unit tests one after the others > > > > will only run `some_unit_test0` and `some_unit_test1` tests > > > > +How to install > > +-------------- > > + > > +Simply invoke: > > +`> make install` > > + > > +It installs libcl.so and the precompiled header/module files and the > > +ocl_stdlib.h file into install_prefix/beignet/ direcotry. If the system > > +support ICD, it also installs the intel-beignet.icd to > > /etc/OpenCL/vendors/. > > + > > +To make beignet support ICD, you need to have the following two packages > > installed: > > +ocl-icd-dev, ocl-icd-libopencl1 (package name for the ubuntu.) before > > +your build beignet. > > + > > Supported Hardware > > ------------------ > > > > diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cf53a69..7d4d93d > > 100644 > > --- a/src/CMakeLists.txt > > +++ b/src/CMakeLists.txt > > @@ -4,7 +4,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} > > > > ${CMAKE_CURRENT_SOURCE_DIR}/../backend/src/backend/ > > ${CMAKE_CURRENT_SOURCE_DIR}/../include > > ${MESA_SOURCE_INCLUDES}) > > - > > macro (MakeKernelBinStr KERNEL_PATH KERNEL_FILES) foreach (KF > > ${KERNEL_FILES}) > > set (input_file ${KERNEL_PATH}/${KF}.cl) @@ -13,7 +12,7 @@ foreach (KF > > ${KERNEL_FILES}) > > add_custom_command( > > OUTPUT ${output_file} > > COMMAND rm -rf ${output_file} > > - COMMAND > > ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater -s > > ${input_file} -o${output_file} > > + COMMAND ${GBE_BIN_GENERATER} -s ${input_file} -o${output_file} > > DEPENDS ${input_file} > > ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater) > > endforeach (KF) > > endmacro (MakeKernelBinStr) > > diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt index > > b1f0b52..8c64844 100644 > > --- a/utests/CMakeLists.txt > > +++ b/utests/CMakeLists.txt > > @@ -12,6 +12,11 @@ string(REGEX REPLACE "generated/([^\ ]*)\\.cpp" > > "${CMAKE_CURRENT_SOURCE_DIR}/../ string(REGEX REPLACE " " ";" > > KERNEL_MATH_LIST ${KERNEL_MATH_LIST}) > > set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES > > "generated;${KERNEL_MATH_LIST}") > > > > +configure_file ( > > + "setenv.sh.in" > > + "setenv.sh" > > + ) > > + > > link_directories (${LLVM_LIBRARY_DIR}) > > set (utests_sources > > utest_error.c > > @@ -170,7 +175,7 @@ set (utests_sources > > SET (kernel_bin ${CMAKE_CURRENT_SOURCE_DIR}/../kernels/compiler_ceil) > > ADD_CUSTOM_COMMAND( > > OUTPUT ${kernel_bin}.bin > > - COMMAND > > ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater > > ${kernel_bin}.cl -o${kernel_bin}.bin > > + COMMAND ${GBE_BIN_GENERATER} ${kernel_bin}.cl -o${kernel_bin}.bin > > DEPENDS > > ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater > > ${kernel_bin}.cl > > ) > > > > @@ -189,8 +194,8 @@ add_custom_target(utest_generator > > > > if (EGL_FOUND AND MESA_SOURCE_FOUND) > > SET(utests_sources ${utests_sources} compiler_fill_gl_image.cpp) > > -SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS}") > > -SET(CMAKE_C_FLAGS "-DHAS_EGL ${CMAKE_C_FLAGS}") > > +SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS} > > +${DEF_OCL_PCH_PCM_PATH}") SET(CMAKE_C_FLAGS "-DHAS_EGL > > ${CMAKE_C_FLAGS} > > +${DEF_OCL_PCH_PCM_PATH}") > > endif (EGL_FOUND AND MESA_SOURCE_FOUND) > > > > ADD_LIBRARY(utests SHARED ${ADDMATHFUNC} ${utests_sources}) diff --git > > a/utests/utest.cpp b/utests/utest.cpp index 6d51598..718916f 100644 > > --- a/utests/utest.cpp > > +++ b/utests/utest.cpp > > @@ -41,8 +41,6 @@ UTest::UTest(Function fn, const char *name, bool > > haveIssue, bool needDestroyProg > > utestList->push_back(*this); > > } > > > > -UTest::UTest(void) : fn(NULL), name(NULL), haveIssue(false) {} > > - > > static bool strequal(const char *s1, const char *s2) { > > if (strcmp(s1, s2) == 0) return true; > > return false; > > -- > > 1.7.9.5 > > > > _______________________________________________ > > Beignet mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/beignet > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet
>From 97a672f8852dfda305554eaf21f39c895d8bcf34 Mon Sep 17 00:00:00 2001 From: Zhigang Gong <[email protected]> Date: Thu, 9 Jan 2014 17:36:37 +0800 Subject: [Patch v2] Refine the method to find pch and pcm files. When compile user kernels, we need to find the precompiled header file and the precompiled module file. The previous implementation will find the build directory then find the system directory. This is not elegant when it is packaged to a distro. It doesn't need to search the build directory. So I change the default search path to the system directory only. And for the deveoper, I change the build script to set a proper environment variable and make the gbe bin generator and the utest could find the local pch files and pcm files firstly. The only change is now, after the build process. Before the user run the utests, it need to set up the environment firstly. Just invoke . utest/setenv.sh. Then everything should be the same as previous. This setenv.sh also set the OCL_KERNEL_PATH, so you don't need to set it manually now. This patch also update the document. v2: add the missing setenv.sh. Signed-off-by: Zhigang Gong <[email protected]> --- backend/CMakeLists.txt | 6 ++++++ backend/src/CMakeLists.txt | 8 ++++++-- backend/src/GBEConfig.h.in | 2 +- backend/src/backend/program.cpp | 22 +++++++++++++--------- docs/Beignet.mdwn | 20 ++++++++++++++++++-- src/CMakeLists.txt | 3 +-- utests/CMakeLists.txt | 11 ++++++++--- utests/setenv.sh.in | 5 +++++ utests/utest.cpp | 2 -- 9 files changed, 58 insertions(+), 21 deletions(-) create mode 100644 utests/setenv.sh.in diff --git a/backend/CMakeLists.txt b/backend/CMakeLists.txt index 476c6f2..dd55a4a 100644 --- a/backend/CMakeLists.txt +++ b/backend/CMakeLists.txt @@ -91,9 +91,15 @@ elseif (COMPILER STREQUAL "ICC") set (CCMAKE_CXX_FLAGS_MINSIZEREL "-Os -DGBE_DEBUG=0") set (CMAKE_EXE_LINKER_FLAGS "") endif () + include_directories (${CMAKE_CURRENT_BINARY_DIR}) ############################################################## # Project source code ############################################################## add_subdirectory (src) +set(LOCAL_PCH_OBJECT_DIR ${LOCAL_PCH_OBJECT_DIR} PARENT_SCOPE) +set(LOCAL_PCM_OBJECT_DIR ${LOCAL_PCM_OBJECT_DIR} PARENT_SCOPE) +set (GBE_BIN_GENERATER + OCL_PCM_PATH=${LOCAL_PCM_OBJECT_DIR} OCL_PCH_PATH=${LOCAL_PCH_OBJECT_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src/gbe_bin_generater + PARENT_SCOPE) diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt index d19cb50..d15e7b7 100644 --- a/backend/src/CMakeLists.txt +++ b/backend/src/CMakeLists.txt @@ -195,9 +195,13 @@ TARGET_LINK_LIBRARIES(gbe_bin_generater gbe) install (FILES ${ocl_blob_file} DESTINATION lib/beignet) install (FILES ${pch_object} DESTINATION lib/beignet) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${pcm_lib} DESTINATION lib/beignet) +# When build beignet itself, we need to export the local precompiled header file and precompiled module +# file to libcl and utests. +set (LOCAL_PCH_OBJECT_DIR "${local_pch_object}:${beignet_install_path}/ocl_stdlib.h.pch" PARENT_SCOPE) +set (LOCAL_PCM_OBJECT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${pcm_lib}:${beignet_install_path}/${pcm_lib}" PARENT_SCOPE) -set (PCH_OBJECT_DIR "${local_pch_object};${beignet_install_path}/ocl_stdlib.h.pch") -set (PCM_LIB_DIR "${CMAKE_CURRENT_BINARY_DIR}/${pcm_lib};${beignet_install_path}/${pcm_lib}") +set (PCH_OBJECT_DIR "${beignet_install_path}/ocl_stdlib.h.pch") +set (PCM_OBJECT_DIR "${beignet_install_path}/${pcm_lib}") configure_file ( "GBEConfig.h.in" "GBEConfig.h" diff --git a/backend/src/GBEConfig.h.in b/backend/src/GBEConfig.h.in index 9920d25..5bc09b8 100644 --- a/backend/src/GBEConfig.h.in +++ b/backend/src/GBEConfig.h.in @@ -2,4 +2,4 @@ #define LIBGBE_VERSION_MAJOR @LIBGBE_VERSION_MAJOR@ #define LIBGBE_VERSION_MINOR @LIBGBE_VERSION_MINOR@ #define PCH_OBJECT_DIR "@PCH_OBJECT_DIR@" -#define PCM_LIB_DIR "@PCM_LIB_DIR@" +#define PCM_OBJECT_DIR "@PCM_OBJECT_DIR@" diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp index 3ab1bc2..284a755 100644 --- a/backend/src/backend/program.cpp +++ b/backend/src/backend/program.cpp @@ -465,6 +465,9 @@ namespace gbe { } BVAR(OCL_OUTPUT_BUILD_LOG, false); + SVAR(OCL_PCH_PATH, PCH_OBJECT_DIR); + SVAR(OCL_PCM_PATH, PCM_OBJECT_DIR); + static bool buildModuleFromSource(const char* input, const char* output, std::string options, size_t stringSize, char *err, size_t *errSize) { // Arguments to pass to the clang frontend @@ -582,12 +585,13 @@ namespace gbe { // Create an action and make the compiler instance carry it out llvm::OwningPtr<clang::CodeGenAction> Act(new clang::EmitLLVMOnlyAction()); - std::string dirs = PCM_LIB_DIR, pcmLib; + std::string dirs = OCL_PCM_PATH; + std::string pcmFileName; std::istringstream idirs(dirs); bool findPcm = false; - while (getline(idirs, pcmLib, ';')) { - if(access(pcmLib.c_str(), R_OK) == 0) { + while (getline(idirs, pcmFileName, ':')) { + if(access(pcmFileName.c_str(), R_OK) == 0) { findPcm = true; break; } @@ -595,7 +599,7 @@ namespace gbe { GBE_ASSERT(findPcm && "Could not find pre compiled module library.\n"); - Clang.getCodeGenOpts().LinkBitcodeFile = pcmLib; + Clang.getCodeGenOpts().LinkBitcodeFile = pcmFileName; auto retVal = Clang.ExecuteAction(*Act); if (err != NULL) { @@ -651,7 +655,6 @@ namespace gbe { char clStr[L_tmpnam+1], llStr[L_tmpnam+1]; const std::string clName = std::string(tmpnam_r(clStr)) + ".cl"; /* unsafe! */ const std::string llName = std::string(tmpnam_r(llStr)) + ".ll"; /* unsafe! */ - std::string pchHeaderName; std::string clOpt; int optLevel = 1; @@ -730,11 +733,12 @@ namespace gbe { clOpt += options; } - std::string dirs = PCH_OBJECT_DIR; + std::string dirs = OCL_PCH_PATH; std::istringstream idirs(dirs); + std::string pchFileName; - while (getline(idirs, pchHeaderName, ';')) { - if(access(pchHeaderName.c_str(), R_OK) == 0) { + while (getline(idirs, pchFileName, ':')) { + if(access(pchFileName.c_str(), R_OK) == 0) { findPCH = true; break; } @@ -742,7 +746,7 @@ namespace gbe { if (usePCH && findPCH) { clOpt += " -include-pch "; - clOpt += pchHeaderName; + clOpt += pchFileName; clOpt += " "; } else fwrite(ocl_stdlib_str.c_str(), strlen(ocl_stdlib_str.c_str()), 1, clFile); diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index d05950f..e3b4b1b 100644 --- a/docs/Beignet.mdwn +++ b/docs/Beignet.mdwn @@ -70,8 +70,10 @@ this code also produces various tests to ensure the compiler and the run-time consistency. This small test framework uses a simple c++ registration system to register all the unit tests. -You need to set the variable `OCL_KERNEL_PATH` to locate the OCL kernels. They -are with the run-time in `./kernels`. +You need to call setenv.sh in the utests/ directory to set some environment variables +firstly as below: + +`> . setenv.sh` Then in `utests/`: @@ -83,6 +85,20 @@ will run all the unit tests one after the others will only run `some_unit_test0` and `some_unit_test1` tests +How to install +-------------- + +Simply invoke: +`> make install` + +It installs libcl.so and the precompiled header/module files and the ocl_stdlib.h file +into install_prefix/beignet/ direcotry. If the system support ICD, it also installs the +intel-beignet.icd to /etc/OpenCL/vendors/. + +To make beignet support ICD, you need to have the following two packages installed: +ocl-icd-dev, ocl-icd-libopencl1 (package name for the ubuntu.) +before your build beignet. + Supported Hardware ------------------ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cf53a69..7d4d93d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../backend/src/backend/ ${CMAKE_CURRENT_SOURCE_DIR}/../include ${MESA_SOURCE_INCLUDES}) - macro (MakeKernelBinStr KERNEL_PATH KERNEL_FILES) foreach (KF ${KERNEL_FILES}) set (input_file ${KERNEL_PATH}/${KF}.cl) @@ -13,7 +12,7 @@ foreach (KF ${KERNEL_FILES}) add_custom_command( OUTPUT ${output_file} COMMAND rm -rf ${output_file} - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater -s ${input_file} -o${output_file} + COMMAND ${GBE_BIN_GENERATER} -s ${input_file} -o${output_file} DEPENDS ${input_file} ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater) endforeach (KF) endmacro (MakeKernelBinStr) diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt index b1f0b52..8c64844 100644 --- a/utests/CMakeLists.txt +++ b/utests/CMakeLists.txt @@ -12,6 +12,11 @@ string(REGEX REPLACE "generated/([^\ ]*)\\.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/../ string(REGEX REPLACE " " ";" KERNEL_MATH_LIST ${KERNEL_MATH_LIST}) set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "generated;${KERNEL_MATH_LIST}") +configure_file ( + "setenv.sh.in" + "setenv.sh" + ) + link_directories (${LLVM_LIBRARY_DIR}) set (utests_sources utest_error.c @@ -170,7 +175,7 @@ set (utests_sources SET (kernel_bin ${CMAKE_CURRENT_SOURCE_DIR}/../kernels/compiler_ceil) ADD_CUSTOM_COMMAND( OUTPUT ${kernel_bin}.bin - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater ${kernel_bin}.cl -o${kernel_bin}.bin + COMMAND ${GBE_BIN_GENERATER} ${kernel_bin}.cl -o${kernel_bin}.bin DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater ${kernel_bin}.cl ) @@ -189,8 +194,8 @@ add_custom_target(utest_generator if (EGL_FOUND AND MESA_SOURCE_FOUND) SET(utests_sources ${utests_sources} compiler_fill_gl_image.cpp) -SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS}") -SET(CMAKE_C_FLAGS "-DHAS_EGL ${CMAKE_C_FLAGS}") +SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS} ${DEF_OCL_PCH_PCM_PATH}") +SET(CMAKE_C_FLAGS "-DHAS_EGL ${CMAKE_C_FLAGS} ${DEF_OCL_PCH_PCM_PATH}") endif (EGL_FOUND AND MESA_SOURCE_FOUND) ADD_LIBRARY(utests SHARED ${ADDMATHFUNC} ${utests_sources}) diff --git a/utests/setenv.sh.in b/utests/setenv.sh.in new file mode 100644 index 0000000..ad77369 --- /dev/null +++ b/utests/setenv.sh.in @@ -0,0 +1,5 @@ +#!/bin/sh +# +export OCL_PCM_PATH=@LOCAL_PCM_OBJECT_DIR@ +export OCL_PCH_PATH=@LOCAL_PCH_OBJECT_DIR@ +export OCL_KERNEL_PATH=@CMAKE_CURRENT_SOURCE_DIR@/../kernels diff --git a/utests/utest.cpp b/utests/utest.cpp index 6d51598..718916f 100644 --- a/utests/utest.cpp +++ b/utests/utest.cpp @@ -41,8 +41,6 @@ UTest::UTest(Function fn, const char *name, bool haveIssue, bool needDestroyProg utestList->push_back(*this); } -UTest::UTest(void) : fn(NULL), name(NULL), haveIssue(false) {} - static bool strequal(const char *s1, const char *s2) { if (strcmp(s1, s2) == 0) return true; return false; -- 1.7.9.5
_______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
