- Squinty Applebottom
- Jan 1, 2013
-
|
how dare you leave out excel
lol excel
what are you, an accounting grad?
|
#
?
Jun 10, 2013 01:01
|
|
- Adbot
-
ADBOT LOVES YOU
|
|
#
?
Jun 6, 2024 21:20
|
|
- uG
- Apr 23, 2003
-
by Ralp
|
if a client hasn't forced you to work with excel at some point then i question your skillz
|
#
?
Jun 10, 2013 01:08
|
|
- spongeh
- Mar 22, 2009
-
BREADAGRAM OF PROTECTION
|
do you mean the engine used in the game unreal, or ue3
actually either way its fkin reatrded
no, ue3. http://www.unrealengine.com/html5/
|
#
?
Jun 10, 2013 03:22
|
|
- Suspicious Dish
- Sep 24, 2011
-
2020 is the year of linux on the desktop, bro
-
Fun Shoe
|
# Detect LLVM and set various variable to link against the different component of LLVM
#
# NOTE: This is a modified version of the module originally found in the OpenGTL project
# at https://www.opengtl.org
#
# LLVM_BIN_DIR : directory with LLVM binaries
# LLVM_LIB_DIR : directory with LLVM library
# LLVM_INCLUDE_DIR : directory with LLVM include
#
# LLVM_COMPILE_FLAGS : compile flags needed to build a program using LLVM headers
# LLVM_LDFLAGS : ldflags needed to link
# LLVM_LIBS_CORE : ldflags needed to link against a LLVM core library
# LLVM_LIBS_JIT : ldflags needed to link against a LLVM JIT
# LLVM_LIBS_JIT_OBJECTS : objects you need to add to your source when using LLVM JIT
if(WIN32)
find_path(LLVM_INCLUDE_DIR NAMES llvm/LLVMContext.h)
message(STATUS "Found LLVM include directory: ${LLVM_INCLUDE_DIR}")
find_library(LLVM_SOMELIB NAMES LLVMCore)
GET_FILENAME_COMPONENT(LLVM_LIB_DIR ${LLVM_SOMELIB} PATH CACHE)
message(STATUS "Found LLVM lib directory: ${LLVM_LIB_DIR}")
#Starting from 3.0, that file exists
find_path(LLVM_3_0 NAMES llvm/Support/TargetSelect.h)
if(LLVM_3_0)
set(LLVM_STRING_VERSION "3.0")
set(LLVM_LIBS_CORE LLVMLinker LLVMArchive LLVMBitWriter LLVMBitReader LLVMInstrumentation LLVMipo LLVMInstCombine)
set(LLVM_LIBS_JIT LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMX86Desc LLVMSelectionDAG LLVMAsmPrinter LLVMX86Utils LLVMX86Info LLVMJIT LLVMExecutionEngine LLVMCodeGen LLVMScalarOpts LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport)
else()
set(LLVM_STRING_VERSION "2.8")
set(LLVM_LIBS_CORE LLVMLinker LLVMArchive LLVMBitWriter LLVMBitReader LLVMInstrumentation LLVMScalarOpts LLVMipo LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMSystem LLVMInstCombine)
set(LLVM_LIBS_JIT LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMSelectionDAG LLVMAsmPrinter LLVMX86Info LLVMJIT LLVMExecutionEngine LLVMCodeGen LLVMScalarOpts LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMSystem)
endif()
message(STATUS "_Guessed_ LLVM version ${LLVM_STRING_VERSION}")
set(LLVM_COMPILE_FLAGS "")
set(LLVM_LDFLAGS "")
set(LLVM_LIBS_JIT_OBJECTS "")
endif (WIN32)
if (LLVM_INCLUDE_DIR)
set(LLVM_FOUND TRUE)
else (LLVM_INCLUDE_DIR)
find_program(LLVM_CONFIG_EXECUTABLE
NAMES llvm-config
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/usr/lib/llvm-2.7/bin
/usr/lib/llvm-2.8/bin
/usr/lib/llvm-2.9/bin
/usr/lib/llvm-3.0/bin
/usr/lib/llvm-3.1/bin
/usr/lib/llvm-3.2/bin
/usr/lib/llvm-3.3/bin
)
find_program(LLVM_GCC_EXECUTABLE
NAMES llvm-gcc llvmgcc
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/Developer/usr/bin
/usr/lib/llvm-2.7/bin
)
find_program(LLVM_GXX_EXECUTABLE
NAMES llvm-g++ llvmg++
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/Developer/usr/bin
/usr/lib/llvm/llvm/gcc-4.2/bin
/usr/lib/llvm-2.7/bin
)
if(LLVM_GCC_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-gcc found at: ${LLVM_GCC_EXECUTABLE}")
#CMAKE_FORCE_C_COMPILER(${LLVM_GCC_EXECUTABLE} GNU)
endif(LLVM_GCC_EXECUTABLE)
if(LLVM_GXX_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-g++ found at: ${LLVM_GXX_EXECUTABLE}")
#CMAKE_FORCE_CXX_COMPILER(${LLVM_GXX_EXECUTABLE} GNU)
endif(LLVM_GXX_EXECUTABLE)
if(LLVM_CONFIG_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-config found at: ${LLVM_CONFIG_EXECUTABLE}")
else(LLVM_CONFIG_EXECUTABLE)
MESSAGE(FATAL_ERROR "Could NOT find LLVM executable")
endif(LLVM_CONFIG_EXECUTABLE)
MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR)
exec_program( ${LLVM_CONFIG_EXECUTABLE} ARGS --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} )
STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}})
SEPARATE_ARGUMENTS(${OBJECT_VAR})
STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}})
SEPARATE_ARGUMENTS(${LIB_VAR})
ENDMACRO(FIND_LLVM_LIBS)
# this function borrowed from PlPlot, Copyright (C) 2006 Alan W. Irwin
function(TRANSFORM_VERSION numerical_result version)
# internal_version ignores everything in version after any character that
# is not 0-9 or ".". This should take care of the case when there is
# some non-numerical data in the patch version.
#message(STATUS "DEBUG: version = ${version}")
string(REGEX REPLACE "^([0-9.]+).*$" "\\1" internal_version ${version})
# internal_version is normally a period-delimited triplet string of the form
# "major.minor.patch", but patch and/or minor could be missing.
# Transform internal_version into a numerical result that can be compared.
string(REGEX REPLACE "^([0-9]*).+$" "\\1" major ${internal_version})
string(REGEX REPLACE "^[0-9]*\\.([0-9]*).*$" "\\1" minor ${internal_version})
#string(REGEX REPLACE "^[0-9]*\\.[0-9]*\\.([0-9]*)$" "\\1" patch ${internal_version})
#if(NOT patch MATCHES "[0-9]+")
# set(patch 0)
#endif(NOT patch MATCHES "[0-9]+")
set(patch 0)
if(NOT minor MATCHES "[0-9]+")
set(minor 0)
endif(NOT minor MATCHES "[0-9]+")
if(NOT major MATCHES "[0-9]+")
set(major 0)
endif(NOT major MATCHES "[0-9]+")
#message(STATUS "DEBUG: internal_version = ${internal_version}")
#message(STATUS "DEBUG: major = ${major}")
#message(STATUS "DEBUG: minor= ${minor}")
#message(STATUS "DEBUG: patch = ${patch}")
math(EXPR internal_numerical_result
#"${major}*1000000 + ${minor}*1000 + ${patch}"
"${major}*1000000 + ${minor}*1000"
)
#message(STATUS "DEBUG: ${numerical_result} = ${internal_numerical_result}")
set(${numerical_result} ${internal_numerical_result} PARENT_SCOPE)
endfunction(TRANSFORM_VERSION)
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_STRING_VERSION )
MESSAGE(STATUS "LLVM version: " ${LLVM_STRING_VERSION})
transform_version(LLVM_VERSION ${LLVM_STRING_VERSION})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --bindir OUTPUT_VARIABLE LLVM_BIN_DIR )
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libdir OUTPUT_VARIABLE LLVM_LIB_DIR )
#MESSAGE(STATUS "LLVM lib dir: " ${LLVM_LIB_DIR})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR )
INCLUDE(CheckIncludeFileCXX)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
check_include_file_cxx("llvm/Support/TargetSelect.h" HAVE_SUPPORT_TARGETSELECT_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_SUPPORT_TARGETSELECT_H: " ${HAVE_SUPPORT_TARGETSELECT_H})
IF(HAVE_SUPPORT_TARGETSELECT_H)
ADD_DEFINITIONS(-DHAVE_SUPPORT_TARGETSELECT_H)
ENDIF(HAVE_SUPPORT_TARGETSELECT_H)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
set(CMAKE_REQUIRED_DEFINITIONS -D__STDC_LIMIT_MACROS=1 -D__STDC_CONSTANT_MACROS=1)
check_include_file_cxx("llvm/IRBuilder.h" HAVE_IRBUILDER_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_IRBUILDER_H: " ${HAVE_IRBUILDER_H})
IF(HAVE_IRBUILDER_H)
ADD_DEFINITIONS(-DHAVE_IRBUILDER_H)
ENDIF(HAVE_IRBUILDER_H)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
check_include_file_cxx("llvm/DataLayout.h" HAVE_DATALAYOUT_H)
check_include_file_cxx("llvm/IR/DataLayout.h" HAVE_IR_DATALAYOUT_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_DATALAYOUT_H: " ${HAVE_DATALAYOUT_H})
MESSAGE(STATUS "HAVE_IR_DATALAYOUT_H: " ${HAVE_IR_DATALAYOUT_H})
IF(HAVE_DATALAYOUT_H)
ADD_DEFINITIONS(-DHAVE_DATALAYOUT_H)
ENDIF(HAVE_DATALAYOUT_H)
IF(HAVE_IR_DATALAYOUT_H)
ADD_DEFINITIONS(-DHAVE_IR_DATALAYOUT_H)
ENDIF(HAVE_IR_DATALAYOUT_H)
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags OUTPUT_VARIABLE LLVM_COMPILE_FLAGS )
MESSAGE(STATUS "LLVM CXX flags: " ${LLVM_COMPILE_FLAGS})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS )
MESSAGE(STATUS "LLVM LD flags: " ${LLVM_LDFLAGS})
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "core ipa ipo instrumentation bitreader bitwriter linker" LLVM_LIBS_CORE LLVM_LIBS_CORE_OBJECTS )
MESSAGE(STATUS "LLVM core libs: " ${LLVM_LIBS_CORE})
IF(APPLE AND UNIVERSAL)
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native x86 PowerPC ARM" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
ELSE(APPLE AND UNIVERSAL)
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
ENDIF(APPLE AND UNIVERSAL)
MESSAGE(STATUS "LLVM JIT libs: " ${LLVM_LIBS_JIT})
MESSAGE(STATUS "LLVM JIT objs: " ${LLVM_LIBS_JIT_OBJECTS})
if(LLVM_INCLUDE_DIR)
set(LLVM_FOUND TRUE)
endif(LLVM_INCLUDE_DIR)
if(LLVM_FOUND)
message(STATUS "Found LLVM: ${LLVM_INCLUDE_DIR}")
else(LLVM_FOUND)
if(LLVM_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find LLVM")
endif(LLVM_FIND_REQUIRED)
endif(LLVM_FOUND)
endif (LLVM_INCLUDE_DIR)
|
#
?
Jun 10, 2013 03:23
|
|
- Suspicious Dish
- Sep 24, 2011
-
2020 is the year of linux on the desktop, bro
-
Fun Shoe
|
oh hi cmake
|
#
?
Jun 10, 2013 03:24
|
|
- compuserved
- Mar 20, 2006
-
-
Nap Ghost
|
# Detect LLVM and set various variable to link against the different component of LLVM
[...]
endif (LLVM_INCLUDE_DIR)
lol okay question answered
|
#
?
Jun 10, 2013 04:26
|
|
- salted hash browns
- Mar 26, 2007
-
ykrop
|
# Detect LLVM and set various variable to link against the different component of LLVM
#
# NOTE: This is a modified version of the module originally found in the OpenGTL project
# at https://www.opengtl.org
#
# LLVM_BIN_DIR : directory with LLVM binaries
# LLVM_LIB_DIR : directory with LLVM library
# LLVM_INCLUDE_DIR : directory with LLVM include
#
# LLVM_COMPILE_FLAGS : compile flags needed to build a program using LLVM headers
# LLVM_LDFLAGS : ldflags needed to link
# LLVM_LIBS_CORE : ldflags needed to link against a LLVM core library
# LLVM_LIBS_JIT : ldflags needed to link against a LLVM JIT
# LLVM_LIBS_JIT_OBJECTS : objects you need to add to your source when using LLVM JIT
if(WIN32)
find_path(LLVM_INCLUDE_DIR NAMES llvm/LLVMContext.h)
message(STATUS "Found LLVM include directory: ${LLVM_INCLUDE_DIR}")
find_library(LLVM_SOMELIB NAMES LLVMCore)
GET_FILENAME_COMPONENT(LLVM_LIB_DIR ${LLVM_SOMELIB} PATH CACHE)
message(STATUS "Found LLVM lib directory: ${LLVM_LIB_DIR}")
#Starting from 3.0, that file exists
find_path(LLVM_3_0 NAMES llvm/Support/TargetSelect.h)
if(LLVM_3_0)
set(LLVM_STRING_VERSION "3.0")
set(LLVM_LIBS_CORE LLVMLinker LLVMArchive LLVMBitWriter LLVMBitReader LLVMInstrumentation LLVMipo LLVMInstCombine)
set(LLVM_LIBS_JIT LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMX86Desc LLVMSelectionDAG LLVMAsmPrinter LLVMX86Utils LLVMX86Info LLVMJIT LLVMExecutionEngine LLVMCodeGen LLVMScalarOpts LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport)
else()
set(LLVM_STRING_VERSION "2.8")
set(LLVM_LIBS_CORE LLVMLinker LLVMArchive LLVMBitWriter LLVMBitReader LLVMInstrumentation LLVMScalarOpts LLVMipo LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMSystem LLVMInstCombine)
set(LLVM_LIBS_JIT LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMSelectionDAG LLVMAsmPrinter LLVMX86Info LLVMJIT LLVMExecutionEngine LLVMCodeGen LLVMScalarOpts LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMSystem)
endif()
message(STATUS "_Guessed_ LLVM version ${LLVM_STRING_VERSION}")
set(LLVM_COMPILE_FLAGS "")
set(LLVM_LDFLAGS "")
set(LLVM_LIBS_JIT_OBJECTS "")
endif (WIN32)
if (LLVM_INCLUDE_DIR)
set(LLVM_FOUND TRUE)
else (LLVM_INCLUDE_DIR)
find_program(LLVM_CONFIG_EXECUTABLE
NAMES llvm-config
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/usr/lib/llvm-2.7/bin
/usr/lib/llvm-2.8/bin
/usr/lib/llvm-2.9/bin
/usr/lib/llvm-3.0/bin
/usr/lib/llvm-3.1/bin
/usr/lib/llvm-3.2/bin
/usr/lib/llvm-3.3/bin
)
find_program(LLVM_GCC_EXECUTABLE
NAMES llvm-gcc llvmgcc
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/Developer/usr/bin
/usr/lib/llvm-2.7/bin
)
find_program(LLVM_GXX_EXECUTABLE
NAMES llvm-g++ llvmg++
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/Developer/usr/bin
/usr/lib/llvm/llvm/gcc-4.2/bin
/usr/lib/llvm-2.7/bin
)
if(LLVM_GCC_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-gcc found at: ${LLVM_GCC_EXECUTABLE}")
#CMAKE_FORCE_C_COMPILER(${LLVM_GCC_EXECUTABLE} GNU)
endif(LLVM_GCC_EXECUTABLE)
if(LLVM_GXX_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-g++ found at: ${LLVM_GXX_EXECUTABLE}")
#CMAKE_FORCE_CXX_COMPILER(${LLVM_GXX_EXECUTABLE} GNU)
endif(LLVM_GXX_EXECUTABLE)
if(LLVM_CONFIG_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-config found at: ${LLVM_CONFIG_EXECUTABLE}")
else(LLVM_CONFIG_EXECUTABLE)
MESSAGE(FATAL_ERROR "Could NOT find LLVM executable")
endif(LLVM_CONFIG_EXECUTABLE)
MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR)
exec_program( ${LLVM_CONFIG_EXECUTABLE} ARGS --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} )
STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}})
SEPARATE_ARGUMENTS(${OBJECT_VAR})
STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}})
SEPARATE_ARGUMENTS(${LIB_VAR})
ENDMACRO(FIND_LLVM_LIBS)
# this function borrowed from PlPlot, Copyright (C) 2006 Alan W. Irwin
function(TRANSFORM_VERSION numerical_result version)
# internal_version ignores everything in version after any character that
# is not 0-9 or ".". This should take care of the case when there is
# some non-numerical data in the patch version.
#message(STATUS "DEBUG: version = ${version}")
string(REGEX REPLACE "^([0-9.]+).*$" "\\1" internal_version ${version})
# internal_version is normally a period-delimited triplet string of the form
# "major.minor.patch", but patch and/or minor could be missing.
# Transform internal_version into a numerical result that can be compared.
string(REGEX REPLACE "^([0-9]*).+$" "\\1" major ${internal_version})
string(REGEX REPLACE "^[0-9]*\\.([0-9]*).*$" "\\1" minor ${internal_version})
#string(REGEX REPLACE "^[0-9]*\\.[0-9]*\\.([0-9]*)$" "\\1" patch ${internal_version})
#if(NOT patch MATCHES "[0-9]+")
# set(patch 0)
#endif(NOT patch MATCHES "[0-9]+")
set(patch 0)
if(NOT minor MATCHES "[0-9]+")
set(minor 0)
endif(NOT minor MATCHES "[0-9]+")
if(NOT major MATCHES "[0-9]+")
set(major 0)
endif(NOT major MATCHES "[0-9]+")
#message(STATUS "DEBUG: internal_version = ${internal_version}")
#message(STATUS "DEBUG: major = ${major}")
#message(STATUS "DEBUG: minor= ${minor}")
#message(STATUS "DEBUG: patch = ${patch}")
math(EXPR internal_numerical_result
#"${major}*1000000 + ${minor}*1000 + ${patch}"
"${major}*1000000 + ${minor}*1000"
)
#message(STATUS "DEBUG: ${numerical_result} = ${internal_numerical_result}")
set(${numerical_result} ${internal_numerical_result} PARENT_SCOPE)
endfunction(TRANSFORM_VERSION)
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_STRING_VERSION )
MESSAGE(STATUS "LLVM version: " ${LLVM_STRING_VERSION})
transform_version(LLVM_VERSION ${LLVM_STRING_VERSION})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --bindir OUTPUT_VARIABLE LLVM_BIN_DIR )
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libdir OUTPUT_VARIABLE LLVM_LIB_DIR )
#MESSAGE(STATUS "LLVM lib dir: " ${LLVM_LIB_DIR})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR )
INCLUDE(CheckIncludeFileCXX)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
check_include_file_cxx("llvm/Support/TargetSelect.h" HAVE_SUPPORT_TARGETSELECT_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_SUPPORT_TARGETSELECT_H: " ${HAVE_SUPPORT_TARGETSELECT_H})
IF(HAVE_SUPPORT_TARGETSELECT_H)
ADD_DEFINITIONS(-DHAVE_SUPPORT_TARGETSELECT_H)
ENDIF(HAVE_SUPPORT_TARGETSELECT_H)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
set(CMAKE_REQUIRED_DEFINITIONS -D__STDC_LIMIT_MACROS=1 -D__STDC_CONSTANT_MACROS=1)
check_include_file_cxx("llvm/IRBuilder.h" HAVE_IRBUILDER_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_IRBUILDER_H: " ${HAVE_IRBUILDER_H})
IF(HAVE_IRBUILDER_H)
ADD_DEFINITIONS(-DHAVE_IRBUILDER_H)
ENDIF(HAVE_IRBUILDER_H)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
check_include_file_cxx("llvm/DataLayout.h" HAVE_DATALAYOUT_H)
check_include_file_cxx("llvm/IR/DataLayout.h" HAVE_IR_DATALAYOUT_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_DATALAYOUT_H: " ${HAVE_DATALAYOUT_H})
MESSAGE(STATUS "HAVE_IR_DATALAYOUT_H: " ${HAVE_IR_DATALAYOUT_H})
IF(HAVE_DATALAYOUT_H)
ADD_DEFINITIONS(-DHAVE_DATALAYOUT_H)
ENDIF(HAVE_DATALAYOUT_H)
IF(HAVE_IR_DATALAYOUT_H)
ADD_DEFINITIONS(-DHAVE_IR_DATALAYOUT_H)
ENDIF(HAVE_IR_DATALAYOUT_H)
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags OUTPUT_VARIABLE LLVM_COMPILE_FLAGS )
MESSAGE(STATUS "LLVM CXX flags: " ${LLVM_COMPILE_FLAGS})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS )
MESSAGE(STATUS "LLVM LD flags: " ${LLVM_LDFLAGS})
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "core ipa ipo instrumentation bitreader bitwriter linker" LLVM_LIBS_CORE LLVM_LIBS_CORE_OBJECTS )
MESSAGE(STATUS "LLVM core libs: " ${LLVM_LIBS_CORE})
IF(APPLE AND UNIVERSAL)
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native x86 PowerPC ARM" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
ELSE(APPLE AND UNIVERSAL)
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
ENDIF(APPLE AND UNIVERSAL)
MESSAGE(STATUS "LLVM JIT libs: " ${LLVM_LIBS_JIT})
MESSAGE(STATUS "LLVM JIT objs: " ${LLVM_LIBS_JIT_OBJECTS})
if(LLVM_INCLUDE_DIR)
set(LLVM_FOUND TRUE)
endif(LLVM_INCLUDE_DIR)
if(LLVM_FOUND)
message(STATUS "Found LLVM: ${LLVM_INCLUDE_DIR}")
else(LLVM_FOUND)
if(LLVM_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find LLVM")
endif(LLVM_FIND_REQUIRED)
endif(LLVM_FOUND)
endif (LLVM_INCLUDE_DIR)
this looks terrible
|
#
?
Jun 10, 2013 05:02
|
|
- Moist von Lipwig
- Oct 28, 2006
-
by FactsAreUseless
-
Tortured By Flan
|
that's some of the ugliest code i ever seen
|
#
?
Jun 10, 2013 07:42
|
|
- Suspicious Dish
- Sep 24, 2011
-
2020 is the year of linux on the desktop, bro
-
Fun Shoe
|
i just want to point out
PKG_CHECK_MODULES(LLVM, llvm >= 3.6)
there's the autotools version
autotools may be m4, but at least that has a specification and reference guide compared to some sed expressions the cmake authors thought would excuse for a macro system.
|
#
?
Jun 10, 2013 07:46
|
|
- Catalyst-proof
- May 11, 2011
-
better waste some time with you
|
oh god cmake
flashback to undergrad
|
#
?
Jun 10, 2013 08:01
|
|
- pseudorandom name
- May 6, 2007
-
|
the cmake version is pkg_check_modules(LLVM llvm>=3.6)
except llvm doesn't actually ship a .pc file
|
#
?
Jun 10, 2013 08:11
|
|
- Suspicious Dish
- Sep 24, 2011
-
2020 is the year of linux on the desktop, bro
-
Fun Shoe
|
http://www.cmake.org/cmake/help/v2.8.11/cmake.html#module:FindPkgConfig
oh yeah they finally fixed that
|
#
?
Jun 10, 2013 08:23
|
|
- Phobeste
- Apr 9, 2006
-
never, like, count out Touchdown Tom, man
|
agh
|
#
?
Jun 10, 2013 14:22
|
|
- Shaggar
- Apr 26, 2006
-
|
# Detect LLVM and set various variable to link against the different component of LLVM
#
# NOTE: This is a modified version of the module originally found in the OpenGTL project
# at https://www.opengtl.org
#
# LLVM_BIN_DIR : directory with LLVM binaries
# LLVM_LIB_DIR : directory with LLVM library
# LLVM_INCLUDE_DIR : directory with LLVM include
#
# LLVM_COMPILE_FLAGS : compile flags needed to build a program using LLVM headers
# LLVM_LDFLAGS : ldflags needed to link
# LLVM_LIBS_CORE : ldflags needed to link against a LLVM core library
# LLVM_LIBS_JIT : ldflags needed to link against a LLVM JIT
# LLVM_LIBS_JIT_OBJECTS : objects you need to add to your source when using LLVM JIT
if(WIN32)
find_path(LLVM_INCLUDE_DIR NAMES llvm/LLVMContext.h)
message(STATUS "Found LLVM include directory: ${LLVM_INCLUDE_DIR}")
find_library(LLVM_SOMELIB NAMES LLVMCore)
GET_FILENAME_COMPONENT(LLVM_LIB_DIR ${LLVM_SOMELIB} PATH CACHE)
message(STATUS "Found LLVM lib directory: ${LLVM_LIB_DIR}")
#Starting from 3.0, that file exists
find_path(LLVM_3_0 NAMES llvm/Support/TargetSelect.h)
if(LLVM_3_0)
set(LLVM_STRING_VERSION "3.0")
set(LLVM_LIBS_CORE LLVMLinker LLVMArchive LLVMBitWriter LLVMBitReader LLVMInstrumentation LLVMipo LLVMInstCombine)
set(LLVM_LIBS_JIT LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMX86Desc LLVMSelectionDAG LLVMAsmPrinter LLVMX86Utils LLVMX86Info LLVMJIT LLVMExecutionEngine LLVMCodeGen LLVMScalarOpts LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport)
else()
set(LLVM_STRING_VERSION "2.8")
set(LLVM_LIBS_CORE LLVMLinker LLVMArchive LLVMBitWriter LLVMBitReader LLVMInstrumentation LLVMScalarOpts LLVMipo LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMSystem LLVMInstCombine)
set(LLVM_LIBS_JIT LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMSelectionDAG LLVMAsmPrinter LLVMX86Info LLVMJIT LLVMExecutionEngine LLVMCodeGen LLVMScalarOpts LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMSystem)
endif()
message(STATUS "_Guessed_ LLVM version ${LLVM_STRING_VERSION}")
set(LLVM_COMPILE_FLAGS "")
set(LLVM_LDFLAGS "")
set(LLVM_LIBS_JIT_OBJECTS "")
endif (WIN32)
if (LLVM_INCLUDE_DIR)
set(LLVM_FOUND TRUE)
else (LLVM_INCLUDE_DIR)
find_program(LLVM_CONFIG_EXECUTABLE
NAMES llvm-config
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/usr/lib/llvm-2.7/bin
/usr/lib/llvm-2.8/bin
/usr/lib/llvm-2.9/bin
/usr/lib/llvm-3.0/bin
/usr/lib/llvm-3.1/bin
/usr/lib/llvm-3.2/bin
/usr/lib/llvm-3.3/bin
)
find_program(LLVM_GCC_EXECUTABLE
NAMES llvm-gcc llvmgcc
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/Developer/usr/bin
/usr/lib/llvm-2.7/bin
)
find_program(LLVM_GXX_EXECUTABLE
NAMES llvm-g++ llvmg++
PATHS
/opt/local/bin
/opt/llvm/2.7/bin
/opt/llvm/bin
/Developer/usr/bin
/usr/lib/llvm/llvm/gcc-4.2/bin
/usr/lib/llvm-2.7/bin
)
if(LLVM_GCC_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-gcc found at: ${LLVM_GCC_EXECUTABLE}")
#CMAKE_FORCE_C_COMPILER(${LLVM_GCC_EXECUTABLE} GNU)
endif(LLVM_GCC_EXECUTABLE)
if(LLVM_GXX_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-g++ found at: ${LLVM_GXX_EXECUTABLE}")
#CMAKE_FORCE_CXX_COMPILER(${LLVM_GXX_EXECUTABLE} GNU)
endif(LLVM_GXX_EXECUTABLE)
if(LLVM_CONFIG_EXECUTABLE)
MESSAGE(STATUS "LLVM llvm-config found at: ${LLVM_CONFIG_EXECUTABLE}")
else(LLVM_CONFIG_EXECUTABLE)
MESSAGE(FATAL_ERROR "Could NOT find LLVM executable")
endif(LLVM_CONFIG_EXECUTABLE)
MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR)
exec_program( ${LLVM_CONFIG_EXECUTABLE} ARGS --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} )
STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}})
SEPARATE_ARGUMENTS(${OBJECT_VAR})
STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}})
SEPARATE_ARGUMENTS(${LIB_VAR})
ENDMACRO(FIND_LLVM_LIBS)
# this function borrowed from PlPlot, Copyright (C) 2006 Alan W. Irwin
function(TRANSFORM_VERSION numerical_result version)
# internal_version ignores everything in version after any character that
# is not 0-9 or ".". This should take care of the case when there is
# some non-numerical data in the patch version.
#message(STATUS "DEBUG: version = ${version}")
string(REGEX REPLACE "^([0-9.]+).*$" "\\1" internal_version ${version})
# internal_version is normally a period-delimited triplet string of the form
# "major.minor.patch", but patch and/or minor could be missing.
# Transform internal_version into a numerical result that can be compared.
string(REGEX REPLACE "^([0-9]*).+$" "\\1" major ${internal_version})
string(REGEX REPLACE "^[0-9]*\\.([0-9]*).*$" "\\1" minor ${internal_version})
#string(REGEX REPLACE "^[0-9]*\\.[0-9]*\\.([0-9]*)$" "\\1" patch ${internal_version})
#if(NOT patch MATCHES "[0-9]+")
# set(patch 0)
#endif(NOT patch MATCHES "[0-9]+")
set(patch 0)
if(NOT minor MATCHES "[0-9]+")
set(minor 0)
endif(NOT minor MATCHES "[0-9]+")
if(NOT major MATCHES "[0-9]+")
set(major 0)
endif(NOT major MATCHES "[0-9]+")
#message(STATUS "DEBUG: internal_version = ${internal_version}")
#message(STATUS "DEBUG: major = ${major}")
#message(STATUS "DEBUG: minor= ${minor}")
#message(STATUS "DEBUG: patch = ${patch}")
math(EXPR internal_numerical_result
#"${major}*1000000 + ${minor}*1000 + ${patch}"
"${major}*1000000 + ${minor}*1000"
)
#message(STATUS "DEBUG: ${numerical_result} = ${internal_numerical_result}")
set(${numerical_result} ${internal_numerical_result} PARENT_SCOPE)
endfunction(TRANSFORM_VERSION)
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_STRING_VERSION )
MESSAGE(STATUS "LLVM version: " ${LLVM_STRING_VERSION})
transform_version(LLVM_VERSION ${LLVM_STRING_VERSION})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --bindir OUTPUT_VARIABLE LLVM_BIN_DIR )
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libdir OUTPUT_VARIABLE LLVM_LIB_DIR )
#MESSAGE(STATUS "LLVM lib dir: " ${LLVM_LIB_DIR})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR )
INCLUDE(CheckIncludeFileCXX)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
check_include_file_cxx("llvm/Support/TargetSelect.h" HAVE_SUPPORT_TARGETSELECT_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_SUPPORT_TARGETSELECT_H: " ${HAVE_SUPPORT_TARGETSELECT_H})
IF(HAVE_SUPPORT_TARGETSELECT_H)
ADD_DEFINITIONS(-DHAVE_SUPPORT_TARGETSELECT_H)
ENDIF(HAVE_SUPPORT_TARGETSELECT_H)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
set(CMAKE_REQUIRED_DEFINITIONS -D__STDC_LIMIT_MACROS=1 -D__STDC_CONSTANT_MACROS=1)
check_include_file_cxx("llvm/IRBuilder.h" HAVE_IRBUILDER_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_IRBUILDER_H: " ${HAVE_IRBUILDER_H})
IF(HAVE_IRBUILDER_H)
ADD_DEFINITIONS(-DHAVE_IRBUILDER_H)
ENDIF(HAVE_IRBUILDER_H)
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
check_include_file_cxx("llvm/DataLayout.h" HAVE_DATALAYOUT_H)
check_include_file_cxx("llvm/IR/DataLayout.h" HAVE_IR_DATALAYOUT_H)
unset(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "HAVE_DATALAYOUT_H: " ${HAVE_DATALAYOUT_H})
MESSAGE(STATUS "HAVE_IR_DATALAYOUT_H: " ${HAVE_IR_DATALAYOUT_H})
IF(HAVE_DATALAYOUT_H)
ADD_DEFINITIONS(-DHAVE_DATALAYOUT_H)
ENDIF(HAVE_DATALAYOUT_H)
IF(HAVE_IR_DATALAYOUT_H)
ADD_DEFINITIONS(-DHAVE_IR_DATALAYOUT_H)
ENDIF(HAVE_IR_DATALAYOUT_H)
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags OUTPUT_VARIABLE LLVM_COMPILE_FLAGS )
MESSAGE(STATUS "LLVM CXX flags: " ${LLVM_COMPILE_FLAGS})
exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS )
MESSAGE(STATUS "LLVM LD flags: " ${LLVM_LDFLAGS})
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "core ipa ipo instrumentation bitreader bitwriter linker" LLVM_LIBS_CORE LLVM_LIBS_CORE_OBJECTS )
MESSAGE(STATUS "LLVM core libs: " ${LLVM_LIBS_CORE})
IF(APPLE AND UNIVERSAL)
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native x86 PowerPC ARM" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
ELSE(APPLE AND UNIVERSAL)
FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
ENDIF(APPLE AND UNIVERSAL)
MESSAGE(STATUS "LLVM JIT libs: " ${LLVM_LIBS_JIT})
MESSAGE(STATUS "LLVM JIT objs: " ${LLVM_LIBS_JIT_OBJECTS})
if(LLVM_INCLUDE_DIR)
set(LLVM_FOUND TRUE)
endif(LLVM_INCLUDE_DIR)
if(LLVM_FOUND)
message(STATUS "Found LLVM: ${LLVM_INCLUDE_DIR}")
else(LLVM_FOUND)
if(LLVM_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find LLVM")
endif(LLVM_FIND_REQUIRED)
endif(LLVM_FOUND)
endif (LLVM_INCLUDE_DIR)
lol. I cant believe people actually used to use this kind of stuff way back in the day. man that would have sucked.
|
#
?
Jun 10, 2013 14:33
|
|
- Sapozhnik
- Jan 2, 2005
-
-
Nap Ghost
|
how dare you leave out excel
please don't give me flashbacks to 2008-2011 thx
|
#
?
Jun 10, 2013 16:23
|
|
- Sapozhnik
- Jan 2, 2005
-
-
Nap Ghost
|
I worked in industry once and I had to work on a big Win32 server project that was a three-way trainwreck of Boost fanatic C++, Microsoft style C++, and let's-pretend-it's-Java C++. It had lots of plugins and there was also lots and lots of XML.
It was somewhat strait-jacketed by a very rigid framework written by another team that had long since disowned it, and it was pretty bad in general, but nothing particularly soul crushing. Maybe the bit where they later added composable lambdas to Excel's expression language and allowed those composed lambdas to be compiled and executed externally within this server framework was somewhat outstandingly awful but that's about it
w,tmss
Give spergs a boring problem and they'll add complexity to it until it becomes an interesting one.
and if by "art for art's sake" you mean "masturbatory exercise in which it is incredibly painful to do anything more complicated than apply Pythagoras' Theorem", then yes.
I believe they attached semantics to certain cell background colours when they discovered that diff-merging a two-dimensional grid of expressions is actually kind of hard
|
#
?
Jun 10, 2013 16:32
|
|
- JawnV6
- Jul 4, 2004
-
So hot ...
|
so wait someone's srsly stumping autotools over cmake?
|
#
?
Jun 10, 2013 17:58
|
|
- uG
- Apr 23, 2003
-
by Ralp
|
Dual license artistic/gpl2 spergpremacy
|
#
?
Jun 14, 2013 14:19
|
|
- uG
- Apr 23, 2003
-
by Ralp
|
artistic then but use 2.0 for reasons I couldn't care less about
|
#
?
Jun 14, 2013 14:26
|
|
- uG
- Apr 23, 2003
-
by Ralp
|
or death license
|
#
?
Jun 14, 2013 14:27
|
|
- Squinty Applebottom
- Jan 1, 2013
-
|
is that a reference to something or does that person think they're more funny than they actually are
probably both, definitely the second
|
#
?
Jun 14, 2013 15:05
|
|
- GameCube
- Nov 21, 2006
-
|
is that a reference to something or does that person think they're more funny than they actually are
it's _why, so the latter
|
#
?
Jun 14, 2013 15:57
|
|
- Suspicious Dish
- Sep 24, 2011
-
2020 is the year of linux on the desktop, bro
-
Fun Shoe
|
i just wanna let him use it w attribution and he has to give me changes back but i dont care how he links or anything, whatever
thats the mpl. fav license
|
#
?
Jun 14, 2013 18:14
|
|
- Shaggar
- Apr 26, 2006
-
|
hey yospos i have some code on github and a dude asked me what license its under cause he would like to use it in a commercial app
so whats a good one thats not too spergy
apache, mit, or bsd.
|
#
?
Jun 14, 2013 18:24
|
|
- Shaggar
- Apr 26, 2006
-
|
gpl2 or gpl3 depending if you hate freedom a little bit or a lot, respectively
|
#
?
Jun 14, 2013 18:25
|
|
- prefect
- Sep 11, 2001
-
No one, Woodhouse.
No one.
-
Dead Man’s Band
|
artistic license
who doesn't want to be an artist?
also it's a joke on the phrase "artistic license", which i have always appreciated
quote:Artistic license (also known as dramatic license, historical license, poetic license, narrative license, licentia poetica, or simply license) is a colloquial term, sometimes euphemism, used to denote the distortion of fact, alteration of the conventions of grammar or language, or rewording of pre-existing text made by an artist to improve a piece of art.
|
#
?
Jun 14, 2013 18:30
|
|
- Adbot
-
ADBOT LOVES YOU
|
|
#
?
Jun 6, 2024 21:20
|
|
- Posting Principle
- Dec 10, 2011
-
by Ralp
|
gpl2 or gpl3 depending if you hate freedom a little bit or a lot, respectively
swr
|
#
?
Jun 14, 2013 18:34
|
|