diff --git a/CMakeLists.txt b/CMakeLists.txt index a05c455..9449b21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,14 +10,14 @@ endif () set(CMAKE_COMPILE_WARNING_AS_ERROR ON) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) if (NOT IVY_STATIC) set(IVY_STATIC 0) @@ -35,3 +35,4 @@ add_subdirectory(asm) add_subdirectory(mie) add_subdirectory(rt) add_subdirectory(frontend) +add_subdirectory(test) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..e216421 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,13 @@ +file(GLOB test_sources *.c) + +foreach (test_file ${test_sources}) + get_filename_component(test_name ${test_file} NAME_WE) + + add_executable(${test_name} ${test_file}) + target_link_libraries(${test_name} ivy-common ivy-lang ivy-asm ivy-rt mie) + set_target_properties(${test_name} PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/test" + ) +endforeach (test_file) diff --git a/test/name-map.c b/test/name-map.c new file mode 100644 index 0000000..b2ac01d --- /dev/null +++ b/test/name-map.c @@ -0,0 +1,20 @@ +#include +#include + +int main(void) +{ + struct mie_name_map *map = mie_name_map_create(); + struct mie_name n1; + struct mie_name n2; + struct mie_name n3; + + mie_name_map_put(map, &n1, "tmp"); + mie_name_map_put(map, &n2, "tmp"); + mie_name_map_put(map, &n3, "tmp"); + + printf("%s\n", n1.n_str); + printf("%s\n", n2.n_str); + printf("%s\n", n3.n_str); + + return 0; +}