Skip to content

Commit

Permalink
add initial cmake script (only builds parts of the code)
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuawarner32 authored and Joshua Warner committed Jul 24, 2014
1 parent 41cb6fa commit d248ad5
Show file tree
Hide file tree
Showing 16 changed files with 139 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitignore
@@ -1,5 +1,5 @@
.gdb_history
build
/build
*~
.classpath
.project
Expand All @@ -13,3 +13,4 @@ bin
/*.sublime-*
workspace/
src/.cproject
/cmake-build
28 changes: 28 additions & 0 deletions CMakeLists.txt
@@ -0,0 +1,28 @@
# NOTE that this CMake file doesn't current build all of avian.
# It only builds what's required for example/kaleidoscope.

cmake_minimum_required (VERSION 2.6)
project (avian)

include_directories (include src)

add_definitions (
-DAVIAN_TARGET_FORMAT=AVIAN_FORMAT_MACHO

-DAVIAN_TARGET_ARCH=AVIAN_ARCH_X86_64

-DTARGET_BYTES_PER_WORD=8
-D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS
)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -fno-exceptions")

include ("cmake/Platform.cmake")
include (CTest)

# Sadly, we can't use the 'test' target, as that's coopted by ctest
add_custom_target(check ${CMAKE_CTEST_COMMAND} -V)

add_subdirectory (src)
add_subdirectory (unittest)
8 changes: 8 additions & 0 deletions cmake/Platform.cmake
@@ -0,0 +1,8 @@
IF (APPLE)
INCLUDE_DIRECTORIES ( /Developer/Headers/FlatCarbon )
FIND_LIBRARY(CORE_FOUNDATION_LIBRARY CoreFoundation)

MARK_AS_ADVANCED (CORE_FOUNDATION_LIBRARY)

SET(PLATFORM_LIBS ${CORE_FOUNDATION_LIBRARY})
ENDIF()
7 changes: 7 additions & 0 deletions src/CMakeLists.txt
@@ -0,0 +1,7 @@
add_subdirectory(codegen)
add_subdirectory(system)
add_subdirectory(heap)
add_subdirectory(util)
add_subdirectory(tools)

add_library(avian_jvm_finder finder.cpp)
19 changes: 19 additions & 0 deletions src/codegen/CMakeLists.txt
@@ -0,0 +1,19 @@
add_library (avian_codegen
compiler.cpp
registers.cpp
runtime.cpp
targets.cpp

compiler/context.cpp
compiler/event.cpp
compiler/frame.cpp
compiler/ir.cpp
compiler/promise.cpp
compiler/read.cpp
compiler/regalloc.cpp
compiler/resource.cpp
compiler/site.cpp
compiler/value.cpp
)

add_subdirectory(target)
2 changes: 2 additions & 0 deletions src/codegen/target/CMakeLists.txt
@@ -0,0 +1,2 @@
add_subdirectory(arm)
add_subdirectory(x86)
8 changes: 8 additions & 0 deletions src/codegen/target/arm/CMakeLists.txt
@@ -0,0 +1,8 @@
add_library(avian_codegen_arm
assembler.cpp
block.cpp
context.cpp
fixup.cpp
multimethod.cpp
operations.cpp
)
11 changes: 11 additions & 0 deletions src/codegen/target/x86/CMakeLists.txt
@@ -0,0 +1,11 @@
add_library(avian_codegen_x86
assembler.cpp
block.cpp
context.cpp
detect.cpp
encode.cpp
fixup.cpp
multimethod.cpp
operations.cpp
padding.cpp
)
2 changes: 2 additions & 0 deletions src/heap/CMakeLists.txt
@@ -0,0 +1,2 @@

add_library(avian_heap heap.cpp)
3 changes: 3 additions & 0 deletions src/system/CMakeLists.txt
@@ -0,0 +1,3 @@

# TODO: use posix.cpp or windows.cpp, depending on platform
add_library(avian_system posix.cpp posix/crash.cpp)
3 changes: 3 additions & 0 deletions src/tools/CMakeLists.txt
@@ -0,0 +1,3 @@
add_subdirectory(binary-to-object)
add_subdirectory(object-writer)
add_subdirectory(type-generator)
3 changes: 3 additions & 0 deletions src/tools/binary-to-object/CMakeLists.txt
@@ -0,0 +1,3 @@
add_executable(binary_to_object main.cpp)

target_link_libraries(binary_to_object object_writer)
6 changes: 6 additions & 0 deletions src/tools/object-writer/CMakeLists.txt
@@ -0,0 +1,6 @@
add_library(object_writer
elf.cpp
mach-o.cpp
pe.cpp
tools.cpp
)
11 changes: 11 additions & 0 deletions src/tools/type-generator/CMakeLists.txt
@@ -0,0 +1,11 @@
add_executable(type_generator main.cpp)

target_link_libraries(type_generator
avian_jvm_finder
avian_system
avian_util
z
pthread
dl
${PLATFORM_LIBS}
)
1 change: 1 addition & 0 deletions src/util/CMakeLists.txt
@@ -0,0 +1 @@
add_library(avian_util arg-parser.cpp fixed-allocator.cpp)
25 changes: 25 additions & 0 deletions unittest/CMakeLists.txt
@@ -0,0 +1,25 @@

include_directories (${CMAKE_CURRENT_SOURCE_DIR})

add_executable (avian_unittest
test-harness.cpp

codegen/assembler-test.cpp
codegen/registers-test.cpp

util/arg-parser-test.cpp
)

target_link_libraries (avian_unittest
avian_codegen
avian_codegen_x86
avian_system
avian_heap
avian_util
pthread
dl
${PLATFORM_LIBS}
)

add_test(NAME avian_unittest COMMAND avian_unittest)
add_dependencies(check avian_unittest)

0 comments on commit d248ad5

Please sign in to comment.