diff --git a/CMakeLists.txt b/CMakeLists.txt index 00ade43052..d2acefc014 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,9 @@ +cmake_minimum_required(VERSION 2.8.12) + project(evmjit) -add_subdirectory(libevmjit) \ No newline at end of file +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +add_subdirectory(libevmjit) +add_subdirectory(libevmjit-cpp) \ No newline at end of file diff --git a/libevmjit-cpp/CMakeLists.txt b/libevmjit-cpp/CMakeLists.txt new file mode 100644 index 0000000000..7996075620 --- /dev/null +++ b/libevmjit-cpp/CMakeLists.txt @@ -0,0 +1,10 @@ + +project(evmjit-cpp LANGUAGES CXX) + +set(SOURCES VM.cpp VM.h) + +source_group("" FILES ${SOURCES}) + +add_library(${PROJECT_NAME} ${SOURCES}) +set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER "libs") + diff --git a/libevmjit/CMakeLists.txt b/libevmjit/CMakeLists.txt index 0b3226e147..155a627c10 100644 --- a/libevmjit/CMakeLists.txt +++ b/libevmjit/CMakeLists.txt @@ -1,58 +1,52 @@ -cmake_policy(SET CMP0015 NEW) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTATICLIB") - -aux_source_directory(. SRC_LIST) - -set(EXECUTABLE evmjit) +project(evmjit LANGUAGES CXX) +file(GLOB SOURCES "*.cpp") file(GLOB HEADERS "*.h") -if (EVMJIT_STATIC) - add_library(${EXECUTABLE} STATIC ${SRC_LIST} ${HEADERS}) -else() - add_library(${EXECUTABLE} SHARED ${SRC_LIST} ${HEADERS}) -endif() +source_group("" FILES ${SOURCES}) +source_group("" FILES ${HEADERS}) -include_directories(..) +add_library(${PROJECT_NAME} ${SOURCES} ${HEADERS}) +set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER "libs") -target_link_libraries(${EXECUTABLE} devcore) -target_link_libraries(${EXECUTABLE} ethcore) -target_link_libraries(${EXECUTABLE} evmcore) +#include_directories(..) + +#target_link_libraries(${EXECUTABLE} devcore) +#target_link_libraries(${EXECUTABLE} ethcore) +#target_link_libraries(${EXECUTABLE} evmcore) -if ("${TARGET_PLATFORM}" STREQUAL "w64") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") - target_link_libraries(${EXECUTABLE} gcc) - target_link_libraries(${EXECUTABLE} gdi32) - target_link_libraries(${EXECUTABLE} ws2_32) - target_link_libraries(${EXECUTABLE} mswsock) - target_link_libraries(${EXECUTABLE} shlwapi) - target_link_libraries(${EXECUTABLE} iphlpapi) - target_link_libraries(${EXECUTABLE} boost_thread_win32-mt-s) - set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS) -else () - find_package(Threads REQUIRED) - target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) -endif () +# if ("${TARGET_PLATFORM}" STREQUAL "w64") + # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") + # target_link_libraries(${EXECUTABLE} gcc) + # target_link_libraries(${EXECUTABLE} gdi32) + # target_link_libraries(${EXECUTABLE} ws2_32) + # target_link_libraries(${EXECUTABLE} mswsock) + # target_link_libraries(${EXECUTABLE} shlwapi) + # target_link_libraries(${EXECUTABLE} iphlpapi) + # target_link_libraries(${EXECUTABLE} boost_thread_win32-mt-s) + # set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS) +# else () + # find_package(Threads REQUIRED) + # target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) +# endif () -# LLVM specific config +# LLVM find_package(LLVM REQUIRED CONFIG) - -message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") -message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") +# message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") +# message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") include_directories(${LLVM_INCLUDE_DIRS}) -add_definitions(${LLVM_DEFINITIONS}) +# add_definitions(${LLVM_DEFINITIONS}) -llvm_map_components_to_libnames(llvm_libs core support mcjit x86asmparser x86codegen) -target_link_libraries(evmjit ${llvm_libs}) +llvm_map_components_to_libnames(LLVM_LIBS core support mcjit x86asmparser x86codegen) +target_link_libraries(${PROJECT_NAME} ${LLVM_LIBS}) -# end of LLVM specific config +# Boost +find_package(Boost REQUIRED) +include_directories(${Boost_INCLUDE_DIRS}) - -install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) -install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) - -cmake_policy(SET CMP0015 NEW) +#install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) +#install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} )